Codeigniter's insert_batch()函数的性能和限制


Codeigniter's insert_batch() function performance and limitations?

我正在编写一个通过短信网关发送短信的应用程序,并且我(显然)在数据库中保留了消息的副本。到目前为止,出于原型设计的目的,我使用Codeigniter的Active Record类将每条消息逐个插入数据库,但是对于批量发送消息,我将使用insert_batch()来固定整个过程。我说的是每个用户一次请求1000-5000条sms (insert),甚至更多。

我的问题是,insert_batch()是足够的,足够快,没有错误,这样大量的插入?还是用于每个批处理作业较少的插入。它是更安全或更快,使自定义mysql查询与多行在一个INSERT?insert_batch()可以插入的行数是否有任何限制?

以前有人在大量插入中使用过它吗?如果有,你的经验是什么?

经过一周的insert_batch()测试和使用insert_batch()处理大约1,000.000条记录后,我遇到了另一个SO问题中所描述的以下问题:Codeigniter's insert_batch()具有数千个插入,缺少记录

因此,根据我的个人经验,insert_batch()对于大规模插入10,000 +行是不可靠的,因为它有时不会插入可能导致数据库不一致的所有内容。我的表现没有问题,到目前为止我很满意。在安装了CentOS的旧PC (p4 w/1GB RAM)上,在大约100秒内运行10,000行

Insert_batch很好,因为您只需使用1个查询即可将信息插入数据库。

这比循环一系列语句要好得多。

如你所知,每条语句都是connect -> query -> close。

我建议你只连接一次数据库,而不是多次连接。