1. 程式人生 > >MySQL資料庫優化(一)

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