MySQL優化與實踐

1、MySQL優化歸納mysql

 

2、SQL優化sql

 

實踐:數據庫

 

1.查看是否開啓了慢查詢日誌工具

show variables like 'slow_query_log'學習

 

 

沒有開啓優化

2.查看是否開啓了未使用索引SQL記錄到日誌網站

show variables like '%log%';操作系統

 

 

沒有開啓3d

3.查看慢查詢多少秒才記錄到日誌日誌

show variables like 'long_query_time';

 

 

4.查看慢查詢日誌位置

 

5.開啓上面的一些配置

set global slow_query_log=on;//開啓慢查詢日誌

set global log_queries_not_using_indexes=on;//開啓記錄沒有用索引的SQL到慢查詢

set global long_query_time=1;//超過1秒的查詢記錄到日誌

 

 

6.MySQL慢查詢日誌分析工具mysqldumpslow,官方的

7.MySQL慢查詢日誌分析工具pt-query-digest,第三方、更好。SQL次數、百分比、具體SQL

 

 

8.如何分析SQL查詢

 

9.explain實踐,查看計劃(SQL執行前都有執行計劃)

 

 

10.具體的SQL優化

(1)count()和Max()的優化

(2)子查詢優化

(3)group by的優化

(4)Limit查詢的優化

(5)等等

3、索引優化

 

 

解釋上面3個爲何:

1.一個索引包含了查詢的全部列,那麼稱這個索引爲覆蓋索引。覆蓋索引效率高

2.字段多致使一次索引獲取數據量大,IO操做成本就會高

3.怎麼知道離散度?select distinct,越高的離散度越好,排前面

 

重複冗餘的索引不只影響插入並且影響查詢

 

 

複製粘貼,只要輸入密碼便可

 

4、數據庫結構優化

1.

 

 

innodb中,對於Null的字段須要額外存儲,儘可能not null

 

 

2.垂直拆分

 

 

字段不少,拆分多個表,用外鍵(不管是否是物理上的)關聯

3.水平拆分

 

 

把數據分到多個結構一致的表裏去,上下太長(數據量多)須要水平切割。

 

 

5、系統配置優化

1.操做系統方面

 

表比較多的話,查詢會佔用文件數

 

2.MySQL自己配置優化方面

 

一個網站,點進去 嚮導式地教你,而後下載配置文件

 

6、硬件優化

 

 

 非原創,學習整理

相關文章
相關標籤/搜索