MySQL優化

1 數據庫優化目的和方向

在這裏插入圖片描述

2 SQL語句優化

2.1 數據準備

在這裏插入圖片描述

2.2 如何發現有問題的SQL語句

2.2.1 慢查日誌

在這裏插入圖片描述
慢查日誌的包含的信息
在這裏插入圖片描述
日誌分析工具
mysql自帶的mysqldumpslow
在這裏插入圖片描述
分析結果
在這裏插入圖片描述
這個工具分析結果包含的信息少,因此常用下面這款。
pt-query-digest
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

2.2.2 如何通過慢查日誌發現有問題的SQL

在這裏插入圖片描述

2.3 如何分析SQL查詢

使用explain查詢SQL的執行計劃
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

2.4 SQL優化

2.4.1 Max()和Count()的優化

在這裏插入圖片描述
添加索引
結果
在這裏插入圖片描述
在這裏插入圖片描述
count(*)會統計null,count(列)不會

2.4.2 子查詢的優化

在這裏插入圖片描述

2.4.3 groupby的優化

在這裏插入圖片描述

2.4.4 limit的優化

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

  • 避免了數據量大時掃描過多的記錄

3 索引優化

3.1 如何選擇合適的列建立索引

在這裏插入圖片描述

3.2 刪除冗餘索引

在這裏插入圖片描述
查找冗餘索引(在表information_schema中)
在這裏插入圖片描述
利用工具
在這裏插入圖片描述

3.3 維護索引

刪除不用索引
在這裏插入圖片描述

4 表結構優化

4.1 選擇合適的數據類型

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

4.2 範式化的優化

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

4.3 反範式化的優化

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

4.4 表的垂直拆分

在這裏插入圖片描述
拆分前
在這裏插入圖片描述
拆分後
在這裏插入圖片描述
在這裏插入圖片描述

4.5 表的水平拆分

在這裏插入圖片描述
在這裏插入圖片描述

5 系統優化

5.1 操作系統優化

在這裏插入圖片描述
在這裏插入圖片描述

5.2 MySQL本身優化

在這裏插入圖片描述
常用參數說明
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

5.3 第三方配置工具

在這裏插入圖片描述

6 服務器硬件優化

6.1 如何選擇CPU

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

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