我有一个INSERT查询,它为DB添加了一个订单,它已经在生产服务器上成功运行了几年,今天大约10%的这些插入没有出现在DB表中,运行这个查询的代码没有发生任何变化,所以我假设这是基于性能的,因为服务器最近的负载肯定更重。
该表是MyISAM,在CentOS服务器上运行了大约9万条记录。
我是否可以使用任何故障排除方法来了解为什么查询没有插入数据,因为我觉得服务器本身是瓶颈?
发布于 2011-08-08 14:09:17
高负载不会导致MySQL盲目删除插入查询。我的猜测是,您的应用程序在连接到DB时可能会出现错误,因此,MySQL从未真正接收到INSERT查询。我建议检查您的代码,以确保正确捕获和记录DB错误。
顺便提一下,您是否实际检查了服务器是否正经历高负载。您说这个表有90k条记录(实际上相当小),但是没有给出服务器正在处理的查询/秒数的任何数字。运行top以观察峰值使用期间的负载平均值,不仅要注意负载平均本身,还要注意进程在iowait中所占的百分比(top中的%wa值)。
发布于 2011-08-08 14:19:08
我还假设代码在执行过程中忽略了一个错误。可能的原因:
https://serverfault.com/questions/298847
复制相似问题