php - MySQL查询和数据调试

标签 php mysql

我正在管理一个拥有大约 140.000 个文档的网站。该系统使用相同的设置已经运行了两年多没有出现问题。我们不得不将我们的服务器迁移到新的基础架构,此后出现了一些异常情况。

每个文档在数据库中都有一个状态。状态码(int)5表示文档被删除/移除。

每隔一小时左右,大约 10 个文档的状态代码会更改为 5。我们不会丢失实际文档,但最终用户无法使用它。我试图找出导致问题的原因,但找不到问题的根源。

我们有两个可以更改文档状态的查询。我暂时禁用了其中一个,并且在代码库中将已删除文档的状态码更改为6。

但是,我们仍然遇到同样的问题,状态码变为 5,而不是 6。

我启用了查询日志,并花了几个小时,但没有对那些已删除文档的更新查询,除了 view_count 增加,这是一个非常简短的查询。该文档在被删除的同时被某人请求。但是,所有查询都是选择查询(view_count 除外),其他文档之间没有区别。我们每秒有数百个页面浏览量。只有其中一个被随机删除。

因此,如果我可以在查询日志中看到,我可以尝试在代码库中找出该特定查询。但是,它甚至没有显示任何内容。所以,我现在一无所知。

您有什么建议吗?我必须解决这个问题,所以我可以尝试任何事情。

新系统是;

Debian 6.0.5 MySQL 5.5.24 - Percona 构建 PHP-NGINX-SOLR盒子

最佳答案

使用 Jet Profiler 分析 UPDATE 查询或 Percona Toolkit ,分析它们,你就会找到答案。

General Query Log还可以帮助您找到特定的更新查询。

关于php - MySQL查询和数据调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11486610/

相关文章:

php - null 值创建 undefined variable 通知

mysql - 是否可以通过 ssl 将 typeorm 连接到 sql gcloud 的实例?

php - 如何在codeigniter中将mysql数据库的多个表作为单个表进行查询(获取)

php - 素数生成器优化

php - Controller 方法链接 : CodeIgniter

javascript - 如何在正则表达式中检测带标点符号的汉字?

php - PHP explode() 函数的使用

mysql - 如何在JSP中添加选择所有功能,例如日期从和到?

php - 管理用户警告

mysql - 智能数据库设置/布局