mysql資料庫優化
避免出現頁面訪問錯誤:
增加資料庫的穩定性:
優化使用者體驗:
如何發現有問題的sql?
使用mysql慢查詢日誌對有效率問題的sql進行監控
1、首先:show variables like "slow_query_log"; 檢視伺服器是否開啟慢查詢日誌,如果:slow_query_log為off,就代表沒有開啟慢查詢日誌。
2、在開啟慢查詢日誌之前,要通過命令show variables like "%log%"; 檢視是否沒有記錄的索引記錄在慢查詢日誌中,如果log_queries_not_using_indexes為off表示沒有開啟,通過命令set global log_queries_not_using_indexes=on;可以設定開啟
3、設定慢查詢日誌記錄的時間,通過命令show variables like "long_query_time"; 查詢時間為大於10秒的查詢記錄在慢查詢日誌中。可以通過set global long_query_time=1;來修改時間。
4、最後,如果上面設定都設定好了,就可以set global slow_query_log=on;來開啟慢查詢日誌的記錄了。
5、通過命令:show variables like "slow%"; 檢視慢日誌存放的位置,如圖:
sql執行資訊:
query_time:查詢執行時間 lock_time:查詢鎖定時間 rows_sent:查詢傳送的行數 rows_examined:查詢掃瞄的行數
set timestamp:以時間戳形式的記錄的執行時間。
如何分析sql查詢(資料庫基於mysql5.5版本,不同mysql版本的優化器有一定的差別)
1、mysqldumpslow工具
2、pt-query-digest 工具
1、使用explan查詢sql的執行計畫
1、explain返回各列的含義,如下:
首先:type中:
const:一般指常數查詢,一般對於主鍵或者唯一索引查詢。
eq_reg:一種範圍查詢,一般對於主鍵或者唯一索引範圍查詢。
ref :常見於連線的查詢中,乙個表是基於索引的查詢。
range:基於索引的範圍查詢
index :對於索引的掃瞄,來進行的查詢
all:對於表的掃瞄,來進行的查詢
其次、extra列需要注意的返回值,如下:
mysql資料庫優化索引 mysql資料庫索引調優
一 mysql索引 1 磁碟檔案結構 innodb引擎 frm格式檔案儲存表結構,ibd格式檔案儲存索引和資料。myisam引擎 frm格式檔案儲存表結構,myi格式檔案儲存索引,myd格式檔案儲存資料 2 mysql資料庫資料範問原理 innodb btree 1 ibd檔案中主鍵構建b tree...
mysql資料庫優先 MySQL資料庫優化
1.新增索引 mysql資料庫的四類索引 index 普通索引,資料可以重複,沒有任何限制。unique 唯一索引,要求索引列的值必須唯一,但允許有空值 如果是組合索引,那麼列值的組合必須唯一。primary key 主鍵索引,是一種特殊的唯一索引,乙個表只能有乙個主鍵,不允許有空值,一般是在建立表...
mysql資料庫優化
用到啥學啥,mysql資料庫優化成了這幾天的老大難問題。瘋狂的尋找mysql優化的資料,覺得有用的不少,記錄下跟大家分享,對了,這裡僅僅是mysql資料庫本身的優化,沒有寫磁碟之類的 開始之前,介紹倆mysql的命令 show global status 檢視執行狀態的,顯示執行各種狀態值 show...