php - 我的应用程序中的哪些文件产生缓慢的 Mysql 查询日志条目

标签 php mysql cakephp mariadb mysql-slow-query-log

我已经为这个问题苦苦挣扎了2天了,还没有找到解决办法。

我记录 mysql 慢查询的时间为 10 秒。在日志文件中有大量包含以下语句的条目:

# Thread_id: 222244  Schema: user  QC_hit: No
# Query_time: 51.019708  Lock_time: 0.000119  Rows_sent: 1  Rows_examined: 13295012
# Rows_affected: 0
SET timestamp=1559388099;
SELECT (COUNT(*)) AS `count` 
FROM statistics Statistics WHERE (id >= 1 AND ad_type <> 3);

这与 apache 请求的激增有关。 query_time 长达一分钟或更长时间,导致我的服务器过载。 问题是我无法在 php 脚本中找到导致查询缓慢的文件。

是否有任何命令行可以查找关联的文件。或者有什么快速的方法吗?

CREATE TABLE statistics` (
    id bigint(20) unsigned NOT NULL AUTO_INCREMENT, 
    ... , 
    PRIMARY KEY (id), 
    KEY idx_uid (uid), 
    KEY idx_ip (ip), 
    KEY idx_cnid_uid (cid,uid), 
    KEY idx_rlid (rid), 
    KEY idx_created_uid (created,uid)
) ENGINE=InnoDB AUTO_INCREMENT=34015 DEFAULT CHARSET=utf8

最佳答案

如果没有理由检查 id >= 1,请将其删除 - 它会抑制某些优化。

然后添加INDEX(ad_type)

不过,我认为在 34K 行(?)表上 COUNT(*) 没有充分的理由需要 51 秒。必须涉及其他东西。

关于php - 我的应用程序中的哪些文件产生缓慢的 Mysql 查询日志条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56406751/

相关文章:

php - 如何在 CakePHP 3 中正确执行 LEFT 连接?

远程文件包含的 PHP 替代方案

php - 在 php 代码中使用类样式(从数据库编辑文本的样式)

php - 在 laravel 护照客户端应用程序中使用访问 token 获取用户数据

mysql - 如何创建 API 在 MySQL 中插入数据并解析具有重复键的 json

php - 为什么我无法访问我的数据库?

javascript - ajax 调用后图像不显示 [Symfony2]

php - 在 Slim 框架中获取数据没有达到我的预期

php - 如何根据 CakePHP 中的 MVC 模式正确使用模型函数?

php - Cakephp 在登录基础上选择数据库