MySQL的優化--------慢查詢(1)

第一:sql本身的優化

問題是:如何從一個大項目中,迅速的定位執行速度慢的語句(定位慢查詢)?

1.  首先了解Mysql數據庫的一些運行狀態如何查詢?

A. Mysql的整體狀態:

     show status

B. Mysql運行了多長時間:

     Show status like ‘uptime’

C. Mysql執行了多少次insert/select/delete/update/...

     Show status like’com_insert

     Show status like’com_select’

     Show status like’com_delete’

     Show status like’com_update’

正常請況下show 後面是默認的session這個參數,指的是當前會話,如果想運行的是從Mysql啓動後的查詢,則是用的另一個參數:global 比如:

show global status like 'com_insert'

而我們上面得到的是0.

D. 試圖連接Mysql數據庫的次數

SHOW STATUS LIKE 'connections'

 

E. 顯示慢查詢次數(次數越少越好)

SHOW STATUS LIKE 'slow_queries'

2. 如何定位慢查詢

當然,定位慢查詢首先要項目中出現慢查詢。問題來了:多長時間纔算慢查詢?

在Mysql中默認:查詢10秒中才算是慢查詢

A. 顯示當前慢查詢時間語句:

SHOW VARIABLES LIKE 'long_query_time'

在一個項目中如果要出現慢查詢,一般數據量會很大,起碼也是千萬或是億萬級別的數據量

B. 修改慢查詢時間語句:

SET long_query_time=1

再查詢 一次當前慢查詢時間,結果爲:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章