Mysql的效能分析

2021-10-23 11:02:18 字數 2516 閱讀 1341

mysqldumpslow的使用

1.檢視慢查詢日誌是否開啟:

2.開啟慢查詢日誌:

show variables like '%log%'

;在結果集中找到log_queries_not_using_indexes

3.設定 slow_query_log為on;

4.檢視日誌存放位置:

5.退出mysql,定位到該目錄下檢視日誌

explain select * from operator;
id : select查詢的序列號

select_type : select 查詢的型別,區別普通查詢和聯合查詢

table: 查詢的是哪張表

type: 訪問型別 ,system–>const---->eq_ref(只有當資料量達到一定級別時才會顯示)---->ref—>fulltext—>ref_or_null—>index_merge---->unique_subquery---->range---->index—>all

查詢至少達到range級別

possible_keys :指出mysql能使用哪個索引在該表中找到行。

key : 顯示mysql使用的鍵

key_len : mysql 使用鍵的長度

ref : 顯示哪個欄位與主鍵一起使用

rows:查詢結果

extra: 擴充套件引數

mysqldumpslow引數詳解:

query_time:查詢所用時間.

lock_time: 執行這條sql語句時鎖定的時間

rows_sent:輸出行數

rows_examined:執行用時多少秒

timestamp: 時間戳

資料優化

一.索引優化

檢視索引:show index from 表名

刪除索引:alter table 表名 index 索引名 或 drop index 索引名 on 表名

新增索引:alter table 表名 add [index,unque] 索引名

新增主鍵索引:alter table 表名 add primary key(列名)

刪除主鍵索引:alter table 表名 drop primary key(列名)

b-tree索引

可以理解為「排好序」的資料結構,利用範圍查詢

在多列索引上,索引要想發揮作用需滿足左字首要求,即要連線使用不能斷線

盡量選擇區分度高的列做索引,區分度公式:

count(columm)/count(*)
如果區分度等於0.1,代表一條掃瞄10條記錄。

索引列不能參與計算。

盡量擴充套件索引,不要新建索引。

=和in可以亂序,例如:index(a,b,c) 索引,使用時可以變成where a=1 and c=2 and b=3

做索引列的字段越短效能越好。

如果查詢中有某個列的範圍查詢,則其右邊所有的列都無法使用索引優化查詢。

hash 索引

採用一定的雜湊演算法,把鍵值換算成hash值,適用於等值查詢,無法利用索引完成排序,不支援多列聯合索引的最左匹配規則。有大量重複值的情況下,雜湊索引效率極低。

二.group by優化

查詢針對乙個表。

group by 使用索引的最左字首。

只可以使用min()和max()聚集函式,並且他們均指向相同的列。

三.limit優化(子查詢優化)

分頁:page ,n

select  * from xx limit (page-1)*n,n
優化:1.業務上優化

2.技術上優化(不能刪除資料)

select

id ,name from xx where id>

(page-1)*n limit n;

select

id from xx limit 100000,10;

內連線查詢:(延遲優化)

select  c.id,c.name from lxx inner join

(select id ,name from xx limit 10000000,10) as t on c.id=t.id

mysql 效能分析 Mysql效能分析

優化mysql資料庫效能的十個引數 1 max connections 允許的同時客戶的數量。增加該值增加 mysqld 要求的檔案描述符的數量。這個數字應該增加,否則,你將經常看到 too many connections 錯誤。預設數值是100,我把它改為1024 2 record buffer...

mysql效能分析方法 mysql 效能分析方法

1.explain分析法 explain 分析查詢語句 1 id列數字越大越先執行,如果說數字一樣大,那麼就從上往下依次執行 2 select type查詢型別 primary dependent subquery等 3 table表名 4 type 從上到下效能依次下降 system 表中只有一行...

mysql 效能分析 mysql效能分析工具

一 expalin 在sql語句之前加上explain關鍵字就可以獲取這條sql語句執行的計畫 那麼返回的這些欄位是什麼呢?我們先關心一下比較重要的幾個字段 1.select type 查詢型別 1 簡單查詢,沒有union和子查詢 2 priamry 主查詢,有union或子查詢的最外層查詢 3 ...