MySQL數據庫優化

不一樣版本mysql的優化器有必定的差異
+ 查看數據庫版本
select @@version;mysql

+ 查看正在使用的database
select database();sql

+ 查看mysql是否開啓慢查詢日誌
show variables like 'slow_query_log';數據庫

+ 開啓mysql慢查詢日誌
set global slow_query_log=on; 工具

+ 設置存儲Mysql慢查詢日誌所在的文件位置
set global slow_query_log_file='/home/mysql/sql_log/mysql-slow.log';優化

+ 設置沒有索引的記錄到慢查詢日誌
set global log_queries_not_using_indexes = on;指針

+ 設置SQL查詢記錄到慢查詢日誌文件的限定時間,單位秒,一般是0.01s
set long_query_time=1日誌

+ 慢查詢日誌分析工具
pt-query-digest排序

pt-query-digest /var/lib/mysql/bogon-slow.log | more索引

+ 查看sql執行計劃
explain select * from store;
Using filesort:須要優化。MYSQL須要進行額外的步驟來發現如何對返回的行排序。它根據鏈接類型以及存儲排序鍵值和匹配條件的所有行的行指針來排序所有行。
Using temporary:須要優化。MYSQL須要建立一個臨時表來存儲結果,這一般發生在對不一樣的列集進行ORDER BY而不是GROUP BY的狀況。io

+ 合理建立索引

+ 用join代替子查詢

+ group by語句優化
查詢每個演員參演影片的數量
select actor.first_name,actor.last_name,count(*)
from film_actor left join actor on film_actor.actor_id = actor.actor_id
group by film_actor.actor_id;

 


有問題歡迎留言交流。

技術交流羣:282575808

--------------------------------------

聲明: 原創文章,未經容許,禁止轉載!

--------------------------------------

相關文章
相關標籤/搜索