我可以在一个请求中插入最佳记录数或数据大小吗?

时间:2009-12-28 14:41:00

标签: mysql bulkinsert

使用Mysql多插入语句(在一个INSERT语句中插入多个记录)。我可以一次插入的记录数或数据大小(字节)是否有最佳数字?

3 个答案:

答案 0 :(得分:1)

限制是行的大小, 一行查询是有限的,

服务器的默认max_allowed_pa​​cket值为1MB。如果服务器需要处理大型查询(例如,如果您正在处理大型BLOB列),则可以增加此值。

你可以在mysql.cnf文件中定义它

参数是

[mysqld]
max_allowed_packet=16M

或设置为

shell> mysql --max_allowed_packet=32M

链接:

http://dev.mysql.com/doc/refman/5.1/en/packet-too-large.html

答案 1 :(得分:0)

越多越好。 做一个大型插入,而不是各种简单的插入,要快得多。你消除了很多大量插入的开销,而不是许多小插件。

答案 2 :(得分:0)

是的,有。 不是您的系统和设置所允许的最大值。

通过仔细的基准测试,可以显示出,如果您继续增加行数,则在某个点之后,多重插入会停止产生任何好处,然后慢慢开始表现更差。

最佳设置取决于您的系统,设置和数据集。运行基准测试将帮助您找到最佳尺寸。