這樣,慢語句就被記錄在日志文件中了.tail -f /usr/local/mysql/data/log_slow_queries.log 查看日志.四個參數Query_time: 0 Lock
公司網站剛改完版,優化了數據庫結構,使用的memcache分布式緩存加MySQL,剛開始幾天還好,數據庫服務幾天沒down過了.但這幾天頻繁down機.是個大問題,需要解決.
數據庫服務器硬件配置為4顆雙核CPU,8G內存.
查看服務器負載(top命令),見MySQL竟然經常百分之九十幾的cpu,恐怖.早之前就知道,數據表有些字段沒有做索引的,引起MySQLL負載這么高的原因主要應該是索引問題和某些變態SQL語句.
如何知道是MySQL哪些索引和SQL引起的問題呢?老大教有絕招
編輯MySQL配置文件my.cnf,加上以下幾行:
log_slow_queries=/usr/local/mysql/data/log_slow_queries.log //慢語句日志保存目錄
long_query_time=10 //記錄SQL查詢超過10S的語句
log-queries-not-using-indexes=1 //記錄沒有使用索引的sql
這樣,慢語句就被記錄在日志文件中了.
tail -f /usr/local/mysql/data/log_slow_queries.log 查看日志.
四個參數
Query_time: 0 Lock_time: 0 Rows_sent: 1 Rows_examined: 54
分別意思為:查詢時間 鎖定時間 查詢結果行數 掃描行數
主要看那些掃描行數超多的語句.然后去數據庫加上對應的索引
再優化下變態的sql
完成后MySQL負載降到了二十幾.還行.應該不會down機了.
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com