1

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

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

以前有没有人用它来做大量的插入?如果是,你的经验是什么?

4

2 回答 2

1

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

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

于 2013-08-06T10:46:38.623 回答
0

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

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

如您所知,每个语句都是连接 -> 查询 -> 关闭。

我建议您希望连接到您的数据库一次,而不是重复连接到它。

于 2013-06-20T20:48:06.863 回答