douhan1992 2015-08-08 22:28 采纳率: 100%
浏览 109

sqlite + php - 使用循环进行事务的权利和最快方式

I'm a beginner in php/sql (6 months), and I noticed - transactions are faster than pure "insert into".

When I operate on huge amounts of data (with range: 10-500k inserts), I noticed my script is slow.

The goal: I wanna do the fastest way to save data into sqlite *.db file.

My script looks like that:

$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");

Is that way is wrong?

  • 写回答

1条回答 默认 最新

  • doumin4553 2015-08-08 22:35
    关注

    What you do is absolutely correct. It will speed up your interaction with the database. Any command that changes the database will automatically start a transaction if one is not already in effect.

    So, if you do many inserts without starting a transaction explicitly, for each operation a transaction will be created. You create 1 transaction and do all the operations in bulk.

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

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

    评论

报告相同问题?

悬赏问题

  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
  • ¥50 C++五子棋AI程序编写
  • ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。