MySQL 索引簡介

2022-10-09 23:03:20 字數 2919 閱讀 1166

索引是建立在表上的,是對資料庫表中一列或多列的值進行排序的一種結構,可以提高查詢速度。使用索引類似於使用新華字典的音序表,通過提取拼音,可以快速定位該資料的位置

索引有其明顯的優勢,也有不可避免的缺點:

1. 普通索引

所謂普通索引,就是在建立索引時,不附加任何限制條件(唯

一、非空等限制),可以建立在任何資料型別的字段上

建立表時直接建立索引

create table tablename(  

propname1 type1 [constraint1],

propname2 type2 [constraint2],

......

index|key [indexname] (propname1 [(length) [asc|desc]])

);

在已存在的表上通過 create 語句建立索引

create index indexname on tablename (propname [(length) [asc|desc]])
通過 alter table 語句建立

alter table tablename add index|key indexname(propname [(length) [asc|desc]])
2. 唯一索引

所謂唯一索引,就是在建立索引時,限制索引的值必須唯一,主鍵就是一種特殊的唯一索引

建立表時直接建立索引

create table tablename(  

propname1 type1 [constraint1],

propname2 type2 [constraint2],

......

unique index|key [indexname] (propname1 [(length) [asc|desc]])

);

在已存在的表上通過 create 語句建立索引

create unique index indexname on tablename (propname [(length) [asc|desc]])
通過 alter table 語句建立

alter table tablename add unique index|key indexname(propname [(length) [asc|desc]])
3. 全文索引

全文索引主要關聯在 char、varchar 和 text 欄位上,以便能更加快速地查詢資料量較大的字串型別字段

建立表時直接建立索引

create table tablename(  

propname1 type1 [constraint1],

propname2 type2 [constraint2],

......

fulltext index|key [indexname] (propname1 [(length) [asc|desc]])

);

在已存在的表上通過 create 語句建立索引

create fulltext index indexname on tablename (propname [(length) [asc|desc]])
通過 alter table 語句建立

alter table tablename add fulltext index|key indexname(propname [(length) [asc|desc]])
4. 多列索引

所謂多列索引,是指在建立索引時關聯多個字段。雖然可以通過所關聯的字段進行查詢,但是只有查詢條件中使用了所關聯欄位中的第乙個字段,多列索引才會被使用

建立表時直接建立索引

create table tablename(  

propname1 type1 [constraint1],

propname2 type2 [constraint2],

......

index|key [indexname] (propname1 [(length) [asc|desc]],

propname2 [(length) [asc|desc]],

......);

);

在已存在的表上通過 create 語句建立索引

create index indexname on tablename (propname1 [(length) [asc|desc]],

propname2 [(length) [asc|desc]],

......);

通過 alter table 語句建立

alter table tablename add index|key indexname(propname1 [(length) [asc|desc]],

propname2 [(length) [asc|desc]],

......);

5. 刪除索引
drop index indexname on tablename;

選擇唯一性索引,可以更快速地確定某條記錄

為經常需要排序、分組和聯合操作的字段建立索引

為經常需要作為查詢條件的字段建立索引

限制索引的數目,索引越多,占用的空間就越多,修改表時對索引的重構和更新也很麻煩

盡量使用資料量少的索引,索引的值越長,查詢速度也會受影響

盡量使用字首來索引,對於 text 和 blob 型別的字段,進行全文索引會很浪費時間,如果只檢索字段前面的若干字段,可以提高速度

刪除不再使用或很少使用的索引

mysql 索引簡介

索引 是一種特殊的資料結構,可以用來快速查詢資料庫表中的特定記錄.是提高資料庫效能的重要方式.包括普通索引,唯一性索引,全文索引,單列索引,多列索引和空間索引.簡介 由資料庫表中的一列或多列組合而成,起作用是提高對錶中資料的查詢速度.設計原則 1.選擇唯一性索引 唯一性索引的值是唯一的,可以快速通過...

mysql索引簡介

參考資料 索引釋義 索引的分類 索引建立和刪除 索引的情景化應用 索引 index 是幫助mysql高效獲取資料的資料結構。提取句子主幹,就可以得到索引的本質 索引是資料結構。為什麼是索引,而不是直接的資料庫資料本身?查詢演算法只能應用於特定的資料結構,例如二分查詢適用於有序的資料,二叉樹查詢只能應...

mysql 索引簡介

索引 其實資料庫中的資料是按頁存放的 其實索引也是按頁存放的 所以本質上索引也佔硬碟空間 以最小的消耗,換取最大的利益 索引是一種有效組合資料的方式!為快速查詢到指定記錄做鋪墊 目的就是快速或者某個記錄!提高了資料庫的檢索速度!作用 大大提高資料庫的檢索速度 改善資料庫效能 mysql索引儲存型別分...