Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 对于性能最佳的批插入或切片多批插入,什么是最好的?_Php_Mysql_Codeigniter_Codeigniter 2 - Fatal编程技术网

Php 对于性能最佳的批插入或切片多批插入,什么是最好的?

Php 对于性能最佳的批插入或切片多批插入,什么是最好的?,php,mysql,codeigniter,codeigniter-2,Php,Mysql,Codeigniter,Codeigniter 2,我注意到,当我使用db->insert\u批处理函数Codeigniter时,每插入100行代码 这背后的原因是什么?一次做所有的事情不是更有收益吗 同样从Codeigniter的角度来看,据我所知,不可能在一个连接中对多个表进行多个插入 这三种场景之间的性能比较是什么 1-在一个连接中插入2220个插件。20对一桌,200对另一桌,2200对最后一桌 2-相同的插入,正如CodeIgniter ActiveRecord库所建议的那样(?)在一次查询中插入10到一个表,在两次不同的查询中插入20

我注意到,当我使用db->insert\u批处理函数Codeigniter时,每插入100行代码

这背后的原因是什么?一次做所有的事情不是更有收益吗

同样从Codeigniter的角度来看,据我所知,不可能在一个连接中对多个表进行多个插入

这三种场景之间的性能比较是什么

1-在一个连接中插入2220个插件。20对一桌,200对另一桌,2200对最后一桌

2-相同的插入,正如CodeIgniter ActiveRecord库所建议的那样(?)在一次查询中插入10到一个表,在两次不同的查询中插入200到第二个表,在20次查询中插入2000到第三个表


每行3-2220个不同的查询。

据我所知,您一次只能插入一个表,因此#1对#3对我来说没有意义(而且您的数字加起来也没有意义)

批量插入的原因是它们会导致高度限制的写锁。根据数据库引擎的不同,插入可能导致表级写锁,从而建立请求队列,并最终在池达到其限制时拒绝请求


批处理允许执行插入操作,有时也会释放锁,从而使可能更快的查询能够在再次锁定之前投入时间。

如果您可以将所有内容都打包到事务中,则会提高性能。也要考虑延迟插入