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

本文介绍了在MySQL和SQLite数据库中批量插入多条记录的方法。对于MySQL,可以通过一条INSERT语句实现多条记录的同时插入,提高效率。而在SQLite中,则推荐使用事务来批量提交多条记录,以减少文件操作次数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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(); 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值