索引是乙個列表,這個列表中包含了某個表中一列或若干列的集合以及這些值的記錄在資料表中儲存位置的實體地址。索引是依賴於表建立的,提供了資料庫中編排表中資料的內部方法。
1.索引的作用
(1)可以加快資料的檢索速度,這也是建立索引的最主要原因。
(2)通過建立唯一性索引,可以確保表中每一行資料的唯一性。
(3)可以加速表和表之間的連線,特別有利於實現資料的參照完整性。
(4)在使用分組和排序子句進行資料檢索時,可以顯著減少查詢中分組和排序的時間。
建立索引的一般原則如下:
(1)對經常用來查詢資料記錄的字段建立索引。
(2)對錶中的主鍵字段建立索引。
(3)對錶中的外來鍵字段建立索引。
(4)對在查詢中用來連線表的字段建立索引。
(5)對經常用來作為排序基準的字段建立索引。
(6)對查詢中很少涉及的字段、重複值比較多的字段不建立索引。
2.索引的分類
mysql的索引包括普通索引、唯一性索引、主鍵索引和全文索引,它們儲存於b樹中,只有空間索引使用r樹,同時memory表還支援雜湊索引。
使用create index語句可以在乙個已經存在的表上建立索引,其語法格式如下:
1例:為資料庫d_sample中的student表的學號建立乙個唯一性索引,索引排列順序為降序。create
[unique|fulltext|spatial
]index
索引名2[
using index_type]3
on表 (索引字段[
asc|desc
][,...
]);
1view codeused_sample;23
create
unique
index
istudent
4on student(學號 desc);
例:為資料庫d_sample中的sc表的學號、課程號建立復合索引。
1例:為book表的內容摘要建立全文索引。alter
table sc add
index isc (學號,課程號);
1view codecreate
table
book
2 (isbn char(13) primary
key,
3 書名 char(100) not
null
,4 內容摘要 text
notnull
,5 單價 decimal(6,2
),6 出版日期 date not
null
,7 fulltext index
ibook (內容摘要)
8 ) engine=myisam default charset=gbk;
建立好索引後,可以通過show create table語句檢視資料表的索引資訊,其語法格式如下:
1 show create例: 檢視d_sample資料庫中student表的索引資訊table
表;
1 show createview codetable student;
使用drop index語句或alter table語句刪除索引。
語法格式如下:
1例:刪除student表上的istudent索引。drop
index
索引on表;
1view codedrop
index istudent on student;
例: 刪除sc表上的isc索引。
1view codealter
tablesc2
drop
index isc;
MySQL 表的建立 表索引 索引的設計原則
為了使索引的使用效率更高,在建立索引時,必須考慮在哪些欄位上建立索引和建立什麼型別的索引。本節將介紹一些索引的設計原則。唯一性索引的值是唯一的,可以更快速地通過該索引來確定某條記錄。例如,學生表中學號是具有唯一性的字段,為該字段建立唯一性索引可以很快確定某個學生的資訊,如果使用姓名的話,可能存在同名...
MySQL建立表的時候建立索引
要想使用索引提高資料表的訪問速度,首先,需要建立乙個索引,建立索引的方式,有三種。這種方式最簡單 方便,語法格式 create table 表名 欄位名 資料型別 完整性約束條件 欄位名 資料型別 完整性約束條件 欄位名 資料型別 unique fulltext spatial index key ...
為表建立索引
聚合索引 有多個字段組成,乙個表中只能有乙個 非聚合索引 有單個字段組成,乙個表中可以有多個 如tbstudent建立乙個聚合索引 學號,班級 1 2個非聚合索引 學號 2 班級 3 對於查詢 select from tbstudent where 學號 張三 1 不起作用,2 作用 select ...