【问题标题】:sqlite+php - right and fastest way to do transactions with loopsqlite+php - 使用循环进行交易的正确和最快的方法
【发布时间】:2015-08-09 08:03:24
【问题描述】:

我是 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");

这样是错的吗?

【问题讨论】:

    标签: php sqlite transactions


    【解决方案1】:

    你所做的绝对正确。它将加快您与数据库的交互。任何更改数据库的命令都将自动启动一个事务(如果尚未生效)。

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

    How to insert 40000 records fast into an sqlite database in an iPad

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      • 2017-08-19
      • 2018-04-27
      • 2016-09-10
      • 2013-06-23
      • 2015-03-10
      相关资源
      最近更新 更多