MySQL索引入門

2021-09-26 02:15:06 字數 2412 閱讀 8768

索引就相當於表的目錄一樣,可以提高我們查詢資料的效率,是一種資料結構。常見的mysql主要有兩種結構:hash索引和b+樹索引。使用哪種資料結構跟儲存引擎有關,innodb引擎預設使用的是b+樹。

補充:b+樹索引和雜湊索引的區別?

什麼場景不適合使用索引:

2、對於那些只有很少資料值的列不適合建立索引:比如性別列–只有男女兩種,在查詢的結果中,結果集的資料行佔了表中資料行的很大比例,相當於做全表查詢,所以沒有必要增加索引,可減少開銷。

3、對於那些定義為text、image、和bit型別的列不適合建立索引:因為這些列的資料量要麼相當大,要麼取值很少。

4、當使用修改的操作遠大於查詢操作時,不適合建立索引:因為增加索引,雖然可以提高檢索速度,但同時也會降低修改效能。

5、對於不會出現在where條件中的字段不適合建立索引:因為你查詢的時候都不會用到。

6、對於資料量較小的表不適合建立索引:因為查詢速度優化不了多少,相反還會有額外的開銷。

什麼場景適合使用索引:

優點:

缺點:

1)普通索引:沒有任何限制,僅加速查詢,是最常用的基本索引。

在已存在的表上建立索引:

create index index_name on healerjean(name);
在建立表的同時建立索引:

create table healerjean (

id bigint(20) not null auto_increment primary key comment '主鍵',

name varchar(32) not null comment '姓名',

email varchar(64) not null comment '郵箱',

message text default null comment '個人資訊',

index index_name (name) comment '索引name'

) comment = '索引測試表';

注意:如果是blob和text型別的列,必須指定length。

create index ix_ extra on healerjean(message(200));
刪除索引:

drop index_name on healerjean;

alter table healerjean drop index index_name;

檢視索引:

show index from healerjean;
2)唯一索引:與普通索引不同的 是:加速查詢和列值唯一

create unique index index_mail on healerjean(mail);
3)主索引:主鍵的索引,與唯一索引的區別就是使用primary關鍵字,預設建立主鍵時建立索引

alter table healerjean add primary key(id);
4)外來鍵索引:也是預設建立外來鍵時建立索引。

5)聯合索引:

alter table table_name add idnex index_name ('column1','column2','column3');
遵循最左字首原則:即最左優先,以最左邊的column1為起點的任何連續索引都能匹配上。

6)單列索引:

7)全文索引:

全文索引(fulltext)僅可以適用於myisam引擎的資料表;作用於char,varchar,text資料型別的列。

1)對於使用like查詢時,後面如果是常量並且只有%號不在第乙個字元,索引才可能會被使用到:

explain select * from company2 where name is null;
3)對於大文字進行搜尋,使用全文索引而不使用like。

1)mysql如果估計使用索引比全表搜尋更慢,則不使用索引。

MySQL索引入門

索引於mysql資料庫,就像是目錄於書籍,讀者可以通過目錄可以快速定位到自己想要的內容。同時,索引基本是對mysql進行查詢效能優化最有效的手段。因為mysql的索引是在引擎層而不是伺服器層實現的,所以不同儲存引擎的索引的種類和工作方式是不同的,即便看起來相同,底層實現邏輯也可能大相徑庭。b tre...

mysql索引入門簡介

舉個例子 若將資料庫比作一本書,那麼索引就是書的目錄,用來提高查詢的速度。通過索引,查詢資料時可以不必讀完記錄的所有資訊,而只是查詢索引列。表的不同的儲存引擎定義了每個表的最大索引數和最大索引長度。所有儲存引擎對每個表至少支援16個索引,總索引長度至少為256b,有些儲存引擎支援更多的索引數和更大的...

mysql索引入門總結

這是一篇適合初學者看的索引入門部落格,耐心看完,會學會的,參考總結出來的!索引是表的目錄,類似於字典中的目錄,用於快速定位查詢資料,索引會儲存在額外的檔案中。索引可以提高查詢速度,會減慢寫入速度,索引的缺點市建立和維護索引需要耗費時間。索引也不是越多越好,索引雖然可以提高查詢效率,但同時頁降低了in...