我有一个INSERT查询,它向数据库添加了一个命令,它已经在生产服务器上成功运行了几年,今天大约有10%的这些INSERT没有出现在数据库表中,代码没有改变运行这个查询,所以我假设这是基于性能的,因为最近服务器肯定是负载较重。
该表是MyISAM,在CentOS服务器上运行大约90,000条logging。
有没有任何疑难解答方法,我可以使用查看为什么查询不插入数据,因为我觉得服务器本身是瓶颈?
高负载不会导致MySQL盲目地删除INSERT查询。 我的猜测是,你的应用程序可能在连接到数据库时出错,因此MySQL永远不会真正接收到INSERT查询。 我会build议检查你的代码,以确保你正在捕捉和loggingDB错误。
顺便说一句,你真的检查过 ,看看服务器是否正在经历高负荷。 你说这个表有90k条logging(实际上是相当小的),但是你没有给出任何关于服务器处理多less个查询/秒的数字。 运行top ,观察高峰使用期间的平均负载,不仅要关注负载平均本身,还要关注Iowait中的时间进程的百分比( %wa top值)
我也认为代码在执行过程中会忽略错误。 可能的原因: