1.爲什麼要進行數據庫性能優化
a避免因數據庫連接Timeout導致服務器報錯(以5開頭,服務器內部錯誤)
b節省資源的開銷(數據冗餘 不合適的數據類型導致存儲空間浪費)
c提高查詢速度
2.該怎麼優化:
可以從SQL及索引 數據庫表結構 系統配置和硬件四個方面考慮
4.SQL優化(針對查詢優化):
開啓MySql慢查日誌對有效率問題的sql進行監控,然後用mysqldumpslow(官方工具)或pt-query-digest(信息全面)日誌分析工具分析日誌,針對執行次數多且每次查詢佔用時間長sql IO消耗大的sql以及未命中索引的sql。也可以使用explain查看sql執行計劃,找到優化思路
5索引優化
選擇合適的列建立索引:
a 在where從句 group by從句 order by從句 on從句中出現的列
b索引字段越小越好
c離散程度大的列放到聯合索引的前面
索引的維護(分析數據庫索引 刪除冗餘 棄用索引) 索引維護工具 :pt-duplicate-checker
6.數據庫表結構設計
a選擇合適的數據類型
b對於需要使用text bin類型,選擇分表
c遵守範式設計很好的規避字段冗餘,分表會影響導致查詢效率,根據業務需求合理使用反範式設計,用磁盤空間換取執行時間
7系統配置:
修改網路配置 增加數據庫服務器tcp支持的隊列數
修改操作系統打開文件數的限制
8硬件配置
注:參考慕課 性能優化之mysql優化