php - 批量插入限制 mySQL PHP

标签 php mysql insert bulkinsert

我需要使用 PHP 脚本在 mySQL 表中执行多次插入,例如 Table1 但数量可能超过 1000 所以我想知道是否有插入mySQL 中内存或行数的限制?另外,这个限制是否因服务器而异?

最佳答案

这里的主要限制因素是 MySQL 接受语句的长度。这是用 max_allowed_packet 定义的系统变量。

my.cnf 文件中将其设置为 1GB 通常就可以了。超出这个范围的任何东西都会变得荒谬,但如果你有足够的内存来容纳它,你可以自由地增加它。请记住,客户端和服务器通常都需要内存中的内存,因此如果在同一台计算机上,理论上需要 2GB。别在这里太疯狂。

带有多个 VALUES 条目的 INSERT 语句可以加载适合该数据包大小的尽可能多的数据。

如果您正在进行大量进口,LOAD DATA INFILE通常要快得多,但您必须以它可以容纳的格式准备数据。 CSV 文件通常在这里最容易使用。

关于php - 批量插入限制 mySQL PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36922118/

相关文章:

php - 解析错误 : syntax error, unexpected '.' expecting ',' or ';'

php - 如何使用 Guzzle 修改 curl 的超时时间?

mysql - 提高 MySQL SELECT WHERE 日期时间查询性能

php - WordPress:使用 get_current_user_id() 插入到我的 WPDB 表中

php - 为什么我的数据被插入两次? PHP/MySQL

mysql - snprintf 截断最后一个符号

php - 如何在 REST API 中使用 session

mysql - 这个简单的 sql 模式应该如何在 Mongodb 中建模

mysql - 加入 "most recent row"的最有效方式

php - 如何在 JOIN 中包含附加的 select 语句? PHP-MySQL