11 索引的基本使用

2021-10-08 09:04:33 字數 1869 閱讀 8503

1.簡介

索引是一種特殊的資料結構,類似於圖書的目錄,它能夠極大地提公升資料庫的查詢效率。如果沒有索引,在查詢資料時必須掃瞄表中的所有記錄才能找出符合條件的記錄,這種全表掃瞄的查詢效率非常低。

2.種類

索引種類

描述普通索引

最基本的索引,沒有任何限制,僅加速查詢

唯一索引

索引列的值必須唯一,但允許有空值

主鍵索引

一種特殊的唯一索引,不允許有空值。一般是在建表的同時自動建立主鍵索引

復合索引

兩個或多個列上的索引被稱作復合索引

全文索引

對文字內容進行分詞索引

3.使用

#建立普通索引

create

index indexname on tablename(field(length));

#建立唯一索引

create

unique

index indexname on tablename(field(length));

#建立復合索引

create

index indexname on tablename(field1, field2, …,fieldn)

;#刪除索引

drop

index indexname on tablename;

#檢視索引

show

index

from tablename;

4.復合索引前導列特性

在mysql中,如果建立了復合索引(name, salary, dept),就相當於建立了(name, salary, dept)、(name, salary)和(name)三個索引,這被稱為復合索引前導列特性,因此在建立復合索引時應該將最常用作查詢條件的列放在最左邊,然後依次遞減。

#未使用索引

select

*from employee where salary =

8800

;select

*from employee where dept =

'部門a'

;select

*from employee where salary =

8800

and dept =

'部門a'

;#使用索引

select

*from employee where name =

'liufeng'

;select

*from employee where name =

'liufeng'

and salary =

8800

;select

*from employee where name =

'liufeng'

and salary =

8800

and dept =

'部門a'

;

5.覆蓋索引

覆蓋索引又稱之為索引覆蓋,即select的資料列只從索引中就能得到,不必讀取資料行,也就是只需掃瞄索引就可以得到查詢結果。當乙個查詢使用了覆蓋索引,在查詢分析器explain的extra列可以看到「using index」 。

使用覆蓋索引,只需要從索引中就能檢索到需要的資料,而不要再掃瞄資料表。

索引的體量往往要比資料表小很多,因此只讀取索引,速度會比較快,也會極大減少資料訪問量。

mysql的查詢優化器會在執行查詢前判斷,是否有乙個索引可以覆蓋所有的查詢列。

並非所有型別的索引都可以作為覆蓋索引,覆蓋索引必須要儲存索引列的值。像雜湊索引、空間索引、全文索引等並不會真正儲存索引列的值。

MySQL索引的基本使用

1.了解索引及其使用 2.熟悉常見的索引種類 3.掌握索引的基本使用 重點 4.掌握索引的實戰經驗 索引是一種特殊的資料結構,類似於圖書的目錄,他能夠極大地提公升資料庫查詢效率。如果沒有索引,在查詢資料時必須掃瞄表中的所有記錄才能找出符合條件的記錄,這種 全表掃瞄的查詢效率非常低 舉例 樓層索引,字...

Mongo 索引基本使用

語法簡介 db.collection name.createindex keys options keys 要建立索引的引數列表。如 其中key表示欄位名,1表示公升序排序,也可使用使用數字 1降序。options 可選引數,表示建立索引的設定。可選值如下 background,boolean,在後...

11 GCC的基本使用

一.常用編譯命令選項 假設源程式檔名為test.c 1.無選項編譯鏈結 用法 gcc test.c 作用 將test.c 預處理 彙編 編譯並鏈結形成可執行檔案。這裡未指定輸出檔案,預設輸出為 a.out 2.選項 o 用法 gcc test.c o test 作用 將test.c 預處理 彙編 編...