慕課網 效能優化之MySQL優化 學習 01

2021-08-07 12:03:53 字數 1628 閱讀 2332

sql及索引優化

發現有問題的sql: 使用mysql慢查詢日誌對有效率問題的sql進行監控

是否開啟慢查詢: show variables like 'slow_query_log';

檢視慢查詢日誌存放位置: show variables like 'slow_query_log_file';

是否將沒有使用索引的sql寫入慢查詢日誌中(優化用): 

show variables like 'log_queries_not_using_indexes';

超過多少秒的sql記錄到慢查詢日誌中: show variables like 'long_query_time';

開始:

檢視這個是否為on

show variables like "show_compatibility_56";

不為on,則

set global show_compatibility_56=on;

切換資料庫

use information_schema;

檢視慢查詢所定義的時間(即多少時間以內為慢查詢)

select * from global_variables where variable_name = 'long_query_time';

orshow variables like "long_query_time";

設定慢查詢定義的時間(為0則是記錄所有)

set global long_query_time=5;

檢視並開啟慢查詢日誌

show variables like 'slow_query_log';

set global slow_query_log=on;

檢視並開啟記錄未使用索引的sql

show variables like 'log_queries_not_using_indexes';

set global log_queries_not_using_indexes=on;

檢視慢查詢日誌的內容:

# time: 2017-10-25t09:22:58.637186z

# user@host: root[root] @ localhost [::1]  id:     5

# query_time: 0.000000  lock_time: 0.000000 rows_sent: 2  rows_examined: 2

use sakila;

set timestamp=1508923378;

select * from store;

# time: 2017-08-14t05:56:54.477368z

執行sql的主機資訊

# user@host: ******[******] @  [114

.114.114.114]  id:  2940

sql的執行資訊

# query_time: 7.828226  lock_time: 0.000203 rows_sent: 15010  rows_examined: 15010

use wsh;

sql的執行時間

set timestamp=1502690214;

sql的內容

select * from `database`.`table`;

慕課網 效能優化之MySQL優化 學習 08

索引優化 在哪些列建立索引?1 在where從句中,group by從句,order by從句,on從句中出現的列 2 索引字段越小越好 3 離散度大的列放到聯合索引前面 select from payment where staff id 2 and customer id 584 是index ...

php效能優化 慕課

效能壓力測試 可以用apache自帶的ab 壓力測試 進到window ab.exe目錄 ab n 1000 總請求數 v100 併發數 記得要帶http php周邊影響 linnux 儲存服務 資料庫 網路 php場景的開銷次序 讀寫記憶體 讀寫資料庫 讀寫硬碟 讀寫網路資料 結論讀寫記憶體最快 ...

效能優化之mysql索引優化

sql及索引優化 如何通過慢查詢日誌發現有問題的sql?查詢次數多且每次查詢占用時間長的sql 通常為pt query digest分析的前幾個查詢 io大的sql 注意pt query digest分析中的rows examine項 未命中索引的sql 注意pt query digest分析中ro...