這樣,慢語句就被記錄在日志文件中了.tail -f /usr/local/mysql/data/log_slow_queries.log 查看日志.四個(gè)參數(shù)Query_time: 0 Lock
公司網(wǎng)站剛改完版,優(yōu)化了數(shù)據(jù)庫結(jié)構(gòu),使用的memcache分布式緩存加MySQL,剛開始幾天還好,數(shù)據(jù)庫服務(wù)幾天沒down過了.但這幾天頻繁down機(jī).是個(gè)大問題,需要解決.
數(shù)據(jù)庫服務(wù)器硬件配置為4顆雙核CPU,8G內(nèi)存.
查看服務(wù)器負(fù)載(top命令),見MySQL竟然經(jīng)常百分之九十幾的cpu,恐怖.早之前就知道,數(shù)據(jù)表有些字段沒有做索引的,引起MySQLL負(fù)載這么高的原因主要應(yīng)該是索引問題和某些變態(tài)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 查看日志.
四個(gè)參數(shù)
Query_time: 0 Lock_time: 0 Rows_sent: 1 Rows_examined: 54
分別意思為:查詢時(shí)間 鎖定時(shí)間 查詢結(jié)果行數(shù) 掃描行數(shù)
主要看那些掃描行數(shù)超多的語句.然后去數(shù)據(jù)庫加上對應(yīng)的索引
再優(yōu)化下變態(tài)的sql
完成后MySQL負(fù)載降到了二十幾.還行.應(yīng)該不會(huì)down機(jī)了.
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com