插入多条记录到数据库的性能优化一小点

来源:互联网 发布:数据库查询多少人重名 编辑:程序博客网 时间:2024/06/12 00:24

1、mysql:

插入多条记录到同一个表时,可以这样写:

insert into table_name (col1,col2,col3) values (col1_val,col2_val,col3_val),(col1_val2,col2_val2,col3_val2)

如此,便实现了一条插入语句插入多条记录的效果(上面的语句是插入两条记录)。

 

2、sqlite:

sqlite不支持像mysql这样一条语句插入多条记录。

而sqlite是以文件的形式存在磁盘中,每次访问时都要打开一次文件,如果对数据进行大量操作时,会很慢~

解决办法是用事务的形式提交:因为我们开始事务后,进行大量操作的语句都保存在内存中,当提交时才全部写入数据库,此时,数据库文件也就只用打开一次。

sql语句:

begin;INSERT INTO "table" VALUES ('a', 'b', 'c');INSERT INTO "table" VALUES ('a', 'b', 'c');INSERT INTO "table" VALUES ('a', 'b', 'c');commit;

php语句:

$i = 0;$db->beginTransaction();  while ($i<10){      $sql = "INSERT INTO 'table' VALUES ('a', 'b', 'c')";      $db->exec($sql);    $i++;}  $db->commit(); 

 

原创粉丝点击