Php 如何提高MySQL插入性能?

Php 如何提高MySQL插入性能?,php,mysql,performance,Php,Mysql,Performance,我有一个从许多商人那里收集信息的程序 商户的每个请求,我的程序都会执行插入查询: INSERT INTO `good` (id,code,merchant,netcost,ip) values('','GC8958','merchantname','581000','192.168.34.30'); 一次有很多商家的请求超过500个请求,所以MYSQL做500个以上的插入查询 这是一个问题吗?我如何用MYSQL解决这个问题?除非你对硬件感到紧张,否则这不应该是一个问题。在这种情况下,答案是更快

我有一个从许多商人那里收集信息的程序

商户的每个请求,我的程序都会执行插入查询:

INSERT INTO `good` (id,code,merchant,netcost,ip) values('','GC8958','merchantname','581000','192.168.34.30');
一次有很多商家的请求超过500个请求,所以MYSQL做500个以上的插入查询


这是一个问题吗?我如何用MYSQL解决这个问题?

除非你对硬件感到紧张,否则这不应该是一个问题。在这种情况下,答案是更快的磁盘、更多的RAM和更快的CPU,一旦你验证了这三者中的哪一个是平均瓶颈。如果您使用MyISAM表,您可以使用该语法覆盖峰值,这可能不值得;该语法已被弃用

如果您是成批执行此操作的,即不是不同的客户端,每个客户端插入一行,那么多个插入,甚至加载数据填充将是一个巨大的帮助。在紧急情况下,您可以将它们未编制索引地保存在磁盘或会话上,这相当于相同的内容。。。或者在一个小内存表中——但在使用它之前,我会运行一些测试,并在空闲时运行真正的INSERT


我会把进一步的优化留到以后;过早优化是万恶之源。无论如何您可能会对最后这篇文章感兴趣,它涉及一些深奥的问题,例如:启用InnoDB双写缓冲区还是使用ext4事务日志更好。

增加mysql引擎意味着什么?您的程序可以缓冲这些请求,并以10或类似的间隔插入它们。mysql批处理是最好的选择answer@machineaddict:我认为我的程序不能使用MySql批处理,因为插入查询来自商家的请求。使用预先准备好的语句应该可以提高php的性能*爱*过早优化是万恶之源