MySQL資料庫優化(一)
mysql資料庫優化的目的
一 避免網頁訪問錯誤
1資料庫連線timeout產生頁面5xx錯誤
2慢查詢造成頁面無法載入
3阻塞造成資料無法提交
二 增加資料庫的穩定性
三 優化使用者體驗
1流暢的頁面訪問速度
2良好的網站功能體驗
幾個優化方面
硬體-系統配置-資料庫表結構-SQL及索引
1成本:高--------------->--------------->低
2效果:低---------------->-------------->高
優化方面
一 SQL語句優化
1 SQL及索引優化
如何發現有問題的SQL?
使用MySQL慢查詢日誌對有效率問題的SQL進行監控
下面語句可以開啟慢查詢日誌:
show variables like 'slow_query_log' 檢視這個是否開啟慢查詢日誌
set global slow_query_log_file ='/home/mysql/sql_log/mysql-slow.log' 慢查詢日誌儲存的檔案位置在哪裡
set global log_queries_not_using_indexs=on 指定是否要把沒有使用索引的SQL,記錄到慢查詢的日誌中
set global long_query_time =1 指定一個時間,超過這個時間如1s之後,查詢記錄到查詢日誌中
慢查詢日誌包含的內容
1 執行sql的主機資訊
2 SQL執行的資訊
3 SQL執行的時間
4 SQL執行的內容
MySQL慢查詢日誌
工具一
mysqlsla---mysqldumpslow 輸出
工具二
pt-query-digest
如何分析SQL語句
使用explain查詢SQL的執行計劃 如explain select username from user;
Count()和Max()優化
建立索引後
原文:http://www.cnblogs.com/zz-tt/p/6656033.html