首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL插入偶尔不插入DB

MySQL插入偶尔不插入DB
EN

Server Fault用户
提问于 2011-08-08 13:49:58
回答 2查看 1.2K关注 0票数 2

我有一个INSERT查询,它为DB添加了一个订单,它已经在生产服务器上成功运行了几年,今天大约10%的这些插入没有出现在DB表中,运行这个查询的代码没有发生任何变化,所以我假设这是基于性能的,因为服务器最近的负载肯定更重。

该表是MyISAM,在CentOS服务器上运行了大约9万条记录。

我是否可以使用任何故障排除方法来了解为什么查询没有插入数据,因为我觉得服务器本身是瓶颈?

EN

回答 2

Server Fault用户

发布于 2011-08-08 14:09:17

高负载不会导致MySQL盲目删除插入查询。我的猜测是,您的应用程序在连接到DB时可能会出现错误,因此,MySQL从未真正接收到INSERT查询。我建议检查您的代码,以确保正确捕获和记录DB错误。

顺便提一下,您是否实际检查了服务器是否正经历高负载。您说这个表有90k条记录(实际上相当小),但是没有给出服务器正在处理的查询/秒数的任何数字。运行top以观察峰值使用期间的负载平均值,不仅要注意负载平均本身,还要注意进程在iowait中所占的百分比(top中的%wa值)。

票数 1
EN

Server Fault用户

发布于 2011-08-08 14:19:08

我还假设代码在执行过程中忽略了一个错误。可能的原因:

  • 达到了MySQL连接限制(见ErikA的答案)。基本上,服务器不接收INSERT查询。检查连接的数量(“显示全局状态”中的threads_connected与max_connections相比)。
  • 参数错误,插入失败,但错误被忽略。启用MySQL查询日志,查看服务器是否获得参数错误的查询
  • 代码在发送查询之前失败(例如,由于神奇的参数转换)。检查php错误日志/ web服务器错误日志。
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/298847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档