我的应用程序中哪些文件使Mysql查询日志条目变慢

时间:2019-06-01 12:28:59

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

我已经为这个问题苦苦挣扎了2天,但没有找到解决方案。

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

# 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

1 个答案:

答案 0 :(得分:0)

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

然后添加INDEX(ad_type)

不过,我认为没有充分的理由让34K行(?)表上的COUNT(*)花费51秒。必须涉及其他事项。