天天看點

資料庫索引入門介紹

1.什麼是索引

(1)索引就是目錄

為了查詢的速度增加,建立一個目錄(這也就意味着需要額外的開支)

一般在where字句後經常出現的字段。(通常在資料量超過10000條時使用)

沒有大量的DML語句(DML語句頻繁使用的時候,不适合建立索引)

(2)以二叉樹舉例來說明索引

索引相當于把表中的資料分區存放,用某個關鍵詞+關鍵詞對應的記錄的存儲位址(實體位址),以圖為例,查找Smith時,從king開始,向下向右,再向下向右,然後向下向左,找到Smith的實體位址,進而找到Smith;利用這種方式隻查找了少部分資料,大大減少了掃描範圍;

**注意:**如果有多個smith,則存放在一起,即一個’子樹’存放多個同名為Smith的對應的實體位址;

資料庫索引入門介紹

2.對比建立索引和沒有建立索引

(1)沒建索引時預設全表掃描

explain select * from emp where ename='smith';      

未建立索引時,途中type所示,為ALL,即全表查詢

資料庫索引入門介紹

(2)建立索引後,掃描的是目錄,大大減少了掃描的範圍

explain select * from temp where ename='smith';      

建立索引後type顯示為ref,此時查找不在需要全表搜尋

資料庫索引入門介紹

3.建立索引

(1)複制一張表

create table temp as select * from emp;      
create index name_index on temp(ename);      
select * from emp where ename='smith';