[英]Why is MYSQL slow_query_log not enabled?
我在.my.cnf中具有以下內容
# LOGGING #
slow_query_log = ON
slow_query_log_file = /var/log/mariadb/slow_query.log
log-queries-not-using-indexes = 1
當我運行tuning-primer.sh時,我得到以下信息:
SLOW QUERIES
The slow query log is NOT enabled.
Current long_query_time = 10.000000 sec.
You have 0 out of 36 that take longer than 10.000000 sec. to complete
Your long_query_time seems to be fine
有人可以解釋這怎么可能嗎?
顯然,慢速日志現在正在運行。 你知道什么解決了這個問題嗎?
同時,這已演變為查詢調整...
#1有什么用? 為什么它經常運行? 它返回平均檢查的156K行(整個表?),但僅返回665行。 665是很多行; 您真的需要它們嗎? 是否可以在SQL中進行更多過濾?
聽起來好像沒有INDEX(autoload)
-添加它; 它應該大大加快查詢速度。
#1
SELECT option_name, option_value
FROM wp_options
WHERE autoload = 'S'
您如何處理以下數千行? 而且您要執行數千次?
#2
SELECT st.value AS tra, s.value AS org, s.domain_name_context_md5 AS ctx
FROM wp_icl_strings s
LEFT JOIN wp_icl_string_translations st ON s.id=st.string_id
AND st.status=N
AND st.language='S'
AND s.language!='S'
#3
SELECT slug, taxonomy
FROM wp_posts
INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id =
wp_term_taxonomy.term_taxonomy_id )
INNER JOIN wp_terms ON (wp_term_taxonomy.term_id = wp_terms.term_id )
WHERE wp_posts.ID IN ("S","S","S","S","S","S","S","S","S",...)
ORDER BY wp_terms.name ASC
#4
SELECT t.element_id, tax.term_id, tax.taxonomy
FROM wp_icl_translations t
JOIN wp_term_taxonomy tax ON t.element_id = tax.term_taxonomy_id
AND t.element_type = CONCAT('S', tax.taxonomy)
JOIN wp_terms terms ON terms.term_id = tax.term_id
WHERE tax.term_id != tax.term_taxonomy_id
為什么在LEFT
中LEFT
? 這可能會阻止以st
開頭,而st
可能在INDEX(language, status)
更具選擇性。
在#3中:wp_terms可能會受益於INDEX(name)
。
在#4中:模式設計導致笨拙的CONCAT('S', tax.taxonomy)
; 可以糾正嗎? 也就是說, t.element_type
和tax.taxonomy
是否可以看起來相同-兩者都帶前綴還是不帶前綴? 還是前綴是一個單獨的列?
如果您想進一步討論其中任何一個,請提供SHOW CREATE TABLE
和EXPLAIN SELECT ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.