sqlite3-批量insert插入多条信息-提高效率的办法
发布时间:2020-12-12 20:05:12 所属栏目:百科 来源:网络整理
导读:这也是之前进行了十万级别的insert插入信息,因为数量太多,所以感觉一条一条执行简直慢的要死……经过查询,找到了对应的解决办法,极大的提升了插入多条消息的效率。 之所以慢,就是因为每一条指令都成了一个事务,从而极大的降低了执行效率,解决办法就是
这也是之前进行了十万级别的insert插入信息,因为数量太多,所以感觉一条一条执行简直慢的要死……经过查询,找到了对应的解决办法,极大的提升了插入多条消息的效率。 /*开始事务*/ begin transaction; /*万条记录开始*/ insert into [表名] values(); /*万条记录结束*/ /*执行事务*/ commit transaction; 利用事务,可以将几十分钟的执行指令大幅缩减到几十秒。因为因为这个过程只写一次磁盘。 $conn = new PDO('sqlite::memory:'); $conn->exec("CREATE TABLE t1 (id1 interge,str1 varchar(30))"); $conn->exec("begin transaction"); $sql = ''; for($i=0;$i<1000000;$i++) { $sql = "INSERT INTO t1 VALUES ({$i},'阿斯蒂芬是否');"; $conn->exec($sql); } $conn->exec("commit transaction"); //内存表刷到磁盘 $conn->exec('ATTACH "D:test.db" AS test1'); $conn->exec("insert into test1.t1 SELECT * FROM t1"); $conn->exec('DETACH test1'); 原始博主说这个过程和使用事务的时间差不多。我未测试。 用一个事务的办法就可以提高效率的了,暂时不深入研究了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读