我正在测试一个网页(wordpress),我有这个日志,但我不明白哪个是真正慢的查询这里是阅读我网站查询的链接,请找时间告诉我这个日志中的危险查询是什么那会杀死我的CPU
问问题
153 次
2 回答
1
用于处理慢查询日志的最佳免费工具是 pt-query-digest。默认情况下,这会生成一个报告,显示您的聚合响应时间的去向,按查询指纹细分。
我下载了您的日志并通过 pt-query-digest 运行它。这是输出的一部分,它是查询的排序列表和一些关于它们花费多少时间的统计信息:
# Profile
# Rank Query ID Response time Calls R/Call V/M Item
# ==== ================== ================ ===== ======== ===== ==========
# 1 0xC52F6DEC37D30D44 15065.0357 51.6% 80 188.3129 3.18 SELECT bwp_options
# 2 0x4876D9B1B390C783 4989.7583 17.1% 28 178.2057 7.91 SELECT bwp_options
# 3 0xE6593111E942BBD2 2337.6846 8.0% 10 233.7685 2.10 UPDATE bwp_options
# 4 0xF25CBDE8A6D65826 1784.7358 6.1% 8 223.0920 1.23 SELECT bwp_postmeta
# 5 0xC19DB36FFE85363C 1225.1890 4.2% 5 245.0378 0.09 SELECT bwp_terms bwp_term_taxonomy
# 6 0x7AC4A4CA8054E73D 981.1785 3.4% 4 245.2946 0.10 SELECT bwp_terms bwp_term_taxonomy bwp_term_relationships
# 7 0x3C55C7D48BD1B7C5 714.0035 2.4% 3 238.0012 0.00 SELECT bwp_term_relationships bwp_term_taxonomy
# 8 0x3A5E09EFF2C9AA73 487.4629 1.7% 2 243.7314 0.08 UPDATE bwp_postmeta
# 9 0x6545AED3996807BC 460.0886 1.6% 2 230.0443 0.22 SELECT bwp_postmeta
# 13 0x7AEDF19FDD3A33F1 207.8139 0.7% 30 6.9271 1.11 SELECT wp_options
# MISC 0xMISC 962.7022 3.3% 25 38.5081 0.0 <12 ITEMS>
您可以看到 #1 查询并不是最慢的,平均为 188 秒,但调用次数 (80) 高于其他查询,因此它占总响应时间最多。#1 查询如下:
SELECT option_value FROM bwp_options WHERE option_name = 'ossdl_https' LIMIT 1
我建议您需要option_name
对该表的列进行索引。
其他几个查询运行时间很长,平均在 178 到 245 秒之间。您应该使用索引优化所有这些查询。事实上,它们太慢了,我想知道您是否只是拥有一个资源不足的服务器。你在换吗?
以下是一些不错的博客文章,向您介绍了 pt-query-digest:
pt-query-digest 是 Percona Toolkit 的一部分,Percona Toolkit是一个免费的开源脚本工具集合,用于处理 MySQL 和 Percona Server。
于 2014-11-24T17:57:19.020 回答
0
耗时查询是,
Count: 1 Time=2.90s (2s) Lock=0.00s (0s) Rows=1.0 (1), balkanwe_site[balkanwe_site]@localhost
SELECT bwp_posts.* FROM bwp_posts WHERE N=N AND (((bwp_posts.post_title LIKE 'S') OR (bwp_posts.post_content LIKE 'S')) AND ((bwp_posts.post_title LIKE 'S') OR (bwp_posts.post_content LIKE 'S'))) AND (bwp_posts.post_password = 'S') AND bwp_posts.post_type IN ('S', 'S', 'S', 'S', 'S') AND (bwp_posts.post_status = 'S') ORDER BY (CASE WHEN bwp_posts.post_title LIKE 'S' THEN N WHEN bwp_posts.post_title LIKE 'S' AND bwp_posts.post_title LIKE 'S' THEN N WHEN bwp_posts.post_title LIKE 'S' OR bwp_posts.post_title LIKE 'S' THEN N WHEN bwp_posts.post_content LIKE 'S' THEN N ELSE N END), bwp_posts.post_date DESC
Count: 1 Time=2.96s (2s) Lock=0.00s (0s) Rows=1.0 (1), balkanwe_site[balkanwe_site]@localhost
SELECT SQL_CALC_FOUND_ROWS bwp_posts.ID FROM bwp_posts WHERE N=N AND (((bwp_posts.post_title LIKE 'S') OR (bwp_posts.post_content LIKE 'S')) AND ((bwp_posts.post_title LIKE 'S') OR (bwp_posts.post_content LIKE 'S'))) AND (bwp_posts.post_password = 'S') AND bwp_posts.post_type IN ('S', 'S', 'S', 'S', 'S') AND (bwp_posts.post_status = 'S') ORDER BY (CASE WHEN bwp_posts.post_title LIKE 'S' THEN N WHEN bwp_posts.post_title LIKE 'S' AND bwp_posts.post_title LIKE 'S' THEN N WHEN bwp_posts.post_title LIKE 'S' OR bwp_posts.post_title LIKE 'S' THEN N WHEN bwp_posts.post_content LIKE 'S' THEN N ELSE N END), bwp_posts.post_date DESC LIMIT N, N
Count: 2 Time=1.57s (3s) Lock=0.00s (0s) Rows=20.0 (40), balkanwe_wp[balkanwe_wp]@localhost
(SELECT n.IDNotizia, n.Titolo, n.IDCategoria, n.Data, n.Descrizione, N AS Notizia FROM notizie AS n, notizie_legami AS nl WHERE n.IDNotizia=nl.IDNotizia AND n.Online='S' AND (n.Pubblicail='S' OR n.Pubblicail IS NULL) AND (n.Titolo LIKE 'S' OR n.Sottotitolo LIKE 'S' OR n.Descrizione LIKE 'S' OR n.Notizia like 'S') GROUP BY nl.IDCollegamento) UNION (SELECT IDNews, Titolo, IDCategoria, Data, News, N AS Notizia FROM news WHERE id_ext!='S' AND (Titolo LIKE 'S' OR News LIKE 'S') ) ORDER BY Data DESC LIMIT N
Count: 1 Time=1.88s (1s) Lock=0.00s (0s) Rows=16.0 (16), root[root]@localhost
SELECT TABLE_SCHEMA as DB,SUM(DATA_LENGTH)+SUM(INDEX_LENGTH) AS SPACEUSED from information_schema.tables GROUP BY TABLE_SCHEMA
Count: 1 Time=1.06s (1s) Lock=0.00s (0s) Rows=20.0 (20), balkanwe_wp[balkanwe_wp]@localhost
(SELECT n.IDNotizia, n.Titolo, n.IDCategoria, n.Data, n.Descrizione, N AS Notizia FROM notizie AS n, notizie_legami AS nl WHERE n.IDNotizia=nl.IDNotizia AND n.Online='S' AND (n.Pubblicail='S' OR n.Pubblicail IS NULL) AND ((n.Titolo LIKE 'S' OR n.Sottotitolo LIKE 'S' OR n.Descrizione LIKE 'S' OR n.Notizia LIKE 'S') AND (n.Titolo LIKE 'S' OR n.Sottotitolo LIKE 'S' OR n.Descrizione LIKE 'S' OR n.Notizia LIKE 'S')) GROUP BY nl.IDCollegamento) UNION (SELECT IDNews, Titolo, IDCategoria, Data, News, N AS Notizia FROM news WHERE id_ext!='S' AND ((Titolo LIKE 'S' OR News LIKE 'S') AND (Titolo LIKE 'S' OR News LIKE 'S')) ) ORDER BY Data DESC LIMIT N
Count: 1 Time=1.21s (1s) Lock=0.00s (0s) Rows=34.0 (34), balkanwe_wp[balkanwe_wp]@localhost
SELECT n.IDNotizia FROM notizie AS n, notizie_legami AS nl WHERE n.IDNotizia=nl.IDNotizia AND n.Online='S' AND (n.Pubblicail='S' OR n.Pubblicail IS NULL) AND ((n.Titolo LIKE 'S' OR n.Sottotitolo LIKE 'S' OR n.Descrizione LIKE 'S' OR n.Notizia LIKE 'S') AND (n.Titolo LIKE 'S' OR n.Sottotitolo LIKE 'S' OR n.Descrizione LIKE 'S' OR n.Notizia LIKE 'S')) GROUP BY nl.IDCollegamento
Count: 4 Time=1.82s (7s) Lock=0.01s (0s) Rows=199.8 (799), balkanwe_wp[balkanwe_wp]@localhost
SELECT n.IDNotizia FROM notizie AS n, notizie_legami AS nl WHERE n.IDNotizia=nl.IDNotizia AND n.Online='S' AND (n.Pubblicail='S' OR n.Pubblicail IS NULL) AND (n.Titolo LIKE 'S' OR n.Sottotitolo LIKE 'S' OR n.Descrizione LIKE 'S' OR n.Notizia like 'S') GROUP BY nl.IDCollegamento
Count: 5 Time=1.52s (7s) Lock=0.00s (0s) Rows=19.4 (97), balkanwe_site[balkanwe_site]@localhost
SELECT ID, post_title, post_type, post_status FROM bwp_posts WHERE ( post_title REGEXP 'S' OR post_content REGEXP 'S' ) AND post_type = 'S' AND ID != N AND post_status NOT IN ('S', 'S') ORDER BY post_date DESC LIMIT N
您可以通过运行命令检查最慢的查询,
mysqldumpslow -s -t 5 慢速日志
这将显示前 5 个慢查询。
于 2015-02-18T09:43:53.160 回答