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 ...