Sqlite +正确和最快的方式做事务与循环


sqlite+right and fastest way to do transactions with loop

我是php/sql的初学者(6个月),我注意到-事务比纯"插入"更快。

当我操作大量数据(范围:10-500k插入)时,我注意到我的脚本很慢。

目标:我想做最快的方式将数据保存到sqlite *.db文件。

我的脚本是这样的:

$array = array(
    'ronaldo' => 'gay' , 
    'mario basler' => 'cool guy'
);
$db = new Sqlite3('file.db')
$db->query('BEGIN;');
foreach($array as $kee => $val){
    $db->query("insert into table('name' , 'personality') values('$k' , '$v')");
}
$db->query("COMMIT");

那样是错的吗?

你做的完全正确。它将加快您与数据库的交互。任何更改数据库的命令都将自动启动一个尚未生效的事务。

因此,如果您在没有显式启动事务的情况下执行了许多插入操作,则每个操作都将创建一个事务。创建1个事务,并批量执行所有操作。

如何在iPad中快速插入40000条记录到sqlite数据库

https://www.sqlite.org/lang_transaction.html