索引和慢查詢優化

2022-08-27 04:24:11 字數 907 閱讀 2763

01 為什麼要用索引

對於乙個應用來說,對資料庫的讀寫比例基本上是10:1,即讀多寫少

而且對於寫來說極少出現效能問題,大多數效能問題都是慢查詢

提到加速查,就必須用到索引

02 什麼是索引

索引就相當於書的目錄,是mysql中一種專門的資料結構,稱為key,

索引的本質原理就是通過不斷地縮小查詢範圍,來降低io次數從而提公升查詢效能

強調:一旦為表建立了索引,以後的查詢都會先查索引,再根據索引定位的結果去找資料

03 索引的影響

1、在表中有大量資料的前提下,建立索引速度會很慢,

2、在索引建立完畢後,對錶的查詢效能會大幅度提公升,但是寫效能會降低

04 聚集索引(primary key)

特點:葉子節點存放的一整條資料

05 輔助索引(unique,index)

特點:

如果是按照這個字段建立的索引,

那麼葉子節點存放的是:

06 覆蓋索引

只在輔助索引的葉子節點中就已經找到了所有我們想要的資料

select name from user where name='egon';

select age from user where name='egon';

索引結構,索引類別,慢查詢優化

索引 索引資料結構 b tree 1.磁碟讀寫代價更低 2.查詢效率更加穩定 3.更有利於對資料庫的掃瞄 hash索引 高效 缺點 1.僅僅能滿足 in 2.無法被用來避免資料的排序 3.不能利用部分索引查詢 4.不能避免表掃瞄 5.遇到大量hash重複 bitmap點陣圖索引 主要使用重複多比如性...

MySQL索引原則和慢查詢優化步驟

開發十年,就只剩下這套架構體系了!1.最左字首匹配原則,mysql會一直向右匹配直到遇到範圍查詢 2.和in可以亂序,比如a 1 and b 2 and c 3 建立 a,b,c 索引可以任意順序,mysql的查詢優化器會幫你優化成索引可以識別的形式 3.盡量選擇區分度高的列作為索引,count d...

MySQL索引原理與慢查詢優化

索引的目的在於提高查詢效率,可以模擬字典,如果要查 mysql 這個單詞,我們肯定需要定位到m字母,然後從下往下找到y字母,再找到剩下的sql。如果沒有索引,那麼你可能需要把所有單詞看一遍才能找到你想要的,如果我想找到m開頭的單詞呢?或者w開頭的單詞呢?是不是覺得如果沒有索引,這個事情根本無法完成?...