索引是建立在表上的,是對資料庫表中一列或多列的值進行排序的一種結構,可以提高查詢速度。使用索引類似於使用新華字典的音序表,通過提取拼音,可以快速定位該資料的位置
索引有其明顯的優勢,也有不可避免的缺點:
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索引儲存型別分...