資料庫 3 7 索引額外的問題之如何調優SQL

2021-09-28 22:29:50 字數 1314 閱讀 8366

如何定位並優化慢查詢sql?

具體場景具體分析,只提出大致思路。

1,根據慢日誌定位慢查詢sql。

2,使用explain等工具分析sql

3,修改sql或者盡量讓sql走索引

show variables like

'%query%'

然後查詢一下慢sql的數量(注意一下,這裡只是記錄本次會話的慢sql的條數,一旦我們關閉了mysql的客戶端,再重啟之後,這個慢sql的條數就會被清零),

然後我們將慢查詢日誌開啟,sql如下:

set

global slow_query_log =

on;

然後檢視一下,發現慢查詢日誌已經開啟了。

然後我們需要設定慢查詢時間為1s,sql如下:

set

global long_query_time =

1;

然後重新連線客戶端(為什麼要重新連線客戶端呢?因為有些系統配置修改後可以立即看到結果,有些則不行,設定慢查詢時間屬於後者),再執行「show variables like 『%query%』「,發現時間已經變化:

我們也可以到mysql資料庫的配置檔案my.ini檔案中去做修改,這樣的修改將是永久性的。我們在這裡做的修改,如果重啟了資料庫的服務,這些配置將會被還原成預設的配置。

然後我們用explain對慢sql進行分析:

先了解下explain關鍵字段:

(1)type:表示的是mysql找到需要的資料行的方式。

從左到右效能越來越差。當我們看到type為最後兩個的時候,表明sql走的是全表掃瞄。

未完待續…

資料庫之索引

1 索引的出現其實就是為了提高資料查詢的效率,就像書的目錄一樣。2 索引的出現是為了提高查詢效率,但是實現索引的方式卻有很多種,所以這裡也就引入了索引模 型的概念。可以用於提高讀寫效率的資料結構很多,這裡我先給你介紹三種常見 也比較簡單的 資料結構,它們分別是雜湊表 有序陣列和搜尋樹。2 雜湊表 假...

資料庫之 索引

資料庫為什麼要有索引?答 用於提高資料庫表的資料訪問速度。資料庫索引的資料結構基礎是b tree 多叉樹 b tree結構如下圖 ps 源自網路 索引是針對資料庫表中的某一列或多列建立的。建立索引 create index from tablename tableparam 建立多列索引 creat...

資料庫之索引

索引我們分為四類來講 單列索引 普通索引,唯一索引,主鍵索引 組合索引 全文索引 空間索引。1.單列索引 乙個索引只包含單個列,但乙個表中可以有多個單列索引。這裡不要搞混淆了。mysql中基本索引型別,沒有什麼限制,允許在定義索引的列中插入重複值和空值,純粹為了查詢資料更快一點 索引列中的值必須是唯...