【发布时间】:2020-03-09 14:28:26
【问题描述】:
MySQL 查询 SLOW 不知道如何优化
我认为我对硬件 60GB RAM 10 核 SSD 没问题
您好我有一个大问题,这个查询在 Mysql 上运行缓慢,他们的查询如下:
# Thread_id: 1165100 Schema: back-Alvo-11-07-19 QC_hit: No
# Query_time: 9.015205 Lock_time: 0.000188 Rows_sent: 1 Rows_examined: 2616880
# Rows_affected: 0
SET timestamp=1568549358;
SELECT count(*) as total_rows FROM(
(SELECT m.*
FROM phpfox_channel_video AS m
INNER JOIN phpfox_channel_category AS mc
ON(mc.category_id = mc.category_id)
INNER JOIN phpfox_channel_category_data AS mcd
ON(mcd.video_id = m.video_id)
WHERE m.in_process = 0 AND m.view_id = 0
AND m.module_id = 'videochannel'
AND m.item_id = 0 AND m.privacy IN(0)
AND mcd.category_id = 17
GROUP BY m.video_id
ORDER BY m.time_stamp DESC
LIMIT 12
)) AS m
JOIN phpfox_user AS u
ON(u.user_id = m.user_id);
这个查询运行很慢,你可以看到 9 秒
在寻找优化查询的在线帮助时,总是谈论添加索引,
正如您在下面看到的 EXPLAIN 语句我已经有索引
你们有什么想法我应该在哪里提高这个查询的速度吗?我不是 DB 家伙,对此很难。这是一个网站,有 400,000 个视频。
谢谢
【问题讨论】:
-
"MySQL 查询慢,不知道如何优化" 如果没有
SHOW CREATE TABLE <table_name>foreach 表和EXPLAIN <query>输出,我们也没有任何想法。. -
您的图片难以阅读,请尝试添加文字版本或更好的图片
-
另外
SELECT m.* ... GROUP BY m.video_id ORDER BY m.time_stamp DESC可能使用错误,请查看手册在使用GROUP BY 时MySQL 如何处理functional dependency 的检测并检查您是否正确使用它.. 正确我的意思是至少运行MySQL 5.7.5+ 和一个正在运行的ONLY_FULL_GROUP_BYsql_mode 否则查询无法生成可信赖的结果..
标签: mysql performance mariadb mysql-slow-query-log