情况:
我使用(php)cronjob使我的数据库保持最新。受影响的表包含约40,000条记录。基本上,cronjob删除所有条目,然后将它们插入(具有不同的c值)。我必须这样做,因为它们确实都在改变,因为它们都是相互关联的。
问题:
实际上,一切正常。 cronjob在1.5到2秒内完成了自己的工作(同样,要插入约4万个插件-我认为这已经足够了)。最..但有时查询最多需要60、90甚至120秒!
我索引了我的数据库。而且我认为查询工作很好,因为它只需要2秒的时间。我通过mysql_close()关闭连接;
你有什么想法?如果您需要更多信息,请告诉我。
提前致谢。
编辑:嗯,看来插入没有问题。这是一个复杂的SELECT查询,这带来了一些麻烦。谢谢大家回答!
最佳答案
[抱歉,显然我还没有掌握格式]
从我的阅读中,我可以得出结论,您的cronjob正在使用大容量插入语句。如果您知道cronjob何时工作,建议您启动数据库引擎优化顾问会话,并查看cronjob执行其工作时正在运行其他哪些进程。批量插入对字段数和行数有一些限制。您可以阅读此msdn http://technet.microsoft.com/en-us/library/ms188365.aspx的字幕
性能考量
如果要刷新的页数
单批次超过内部阈值,对缓冲区进行全面扫描
可能会出现池,以识别批处理时要刷新的页面
提交。此完整扫描可能会损害批量导入性能。一个可能
大缓冲区时发生超过内部阈值的情况
池与缓慢的I / O子系统结合在一起。避免缓冲
在大型计算机上溢出,或者不使用TABLOCK提示(
将会删除批量优化)或使用较小的批量
(保留批量优化)。由于计算机各不相同,因此我们
建议您通过加载数据来测试各种批处理大小
找出最适合您的方法。
关于mysql - mysql执行时间的较大差异:最少2秒-最多120秒,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23545098/