索引的概念:資料庫物件索引其實與書的目錄類似,
主要是為了提高從表中檢索資料的速度。
(2)根據索引的儲存型別可以將索引分為b型索引(btree)和雜湊索引(hash)。
(3)mysql所支援的索引:普通索引、唯一索引、全文索引、單列索引、多列索引和空間索引。
一、建立和檢視普通索引
(1)建立表時建立普通索引
create table課程表(
課程編號char(3),
課程名稱varchar(20),
課時float,
專業編號char(3),
教師編號char(4),indexindex_課程名稱(課程名稱)
showcreate table課程表 \g
explainselect * from 課程表 where 課程名稱=1\gdrop index index_課程名稱 on 課程表; \\刪除剛剛建立的索引
(2)在已經存在的表上建立普通索引
create index index_課程名稱 on課程表(課程名稱);
showcreate table課程表 \gdrop index index_課程名稱 on 課程表;
(3)通過sql語句alter table建立普通索引
alter table 課程表 add indexindex_課程名稱(課程名稱);
showcreate table課程表 \gdrop index index_課程名稱 on 課程表;
二、建立和檢視唯一索引
(1)建立表時建立唯一索引
create table班級表(
班級編號char(3),
專業編號char(3),
班主任編號char(4),unique indexindex_班級編號(班級編號)
explain select * from 班級表 where 班級編號=1\gdrop index index_班級編號 on 班級表;
(2)在已經存在的表上建立唯一索引
create unique index index_班級編號 on班級表(班級編號);
showcreate table班級表 \gdrop index index_班級編號 on 班級表;
(3)通過sql語句alter table建立唯一索引
alter table 班級表 add unique indexindex_班級編號(班級編號);
showcreate table班級表 \gdrop index index_班級編號 on 班級表;
drop table 教師表;
(1)建立表時建立全文索引
create table教師表(
教師編號varchar(10),
教師姓名varchar(50),
職務varchar(6),
性別char(1),
年齡int,
fulltextindexindex_教師姓名(教師姓名)
)engine=myisam;
showcreate table教師表 \gdrop index index_教師姓名 on 教師表;
(2)在已經存在的表上建立全文索引
create fulltext index index_教師姓名 on教師表(教師姓名);
showcreate table教師表 \gdrop index index_教師姓名 on 教師表;
(3)通過sql語句alter table建立全文索引
alter table 教師表 add fulltext indexindex_教師姓名(教師姓名);
showcreate table教師表 \gdrop index index_教師姓名 on 教師表;
四、建立和檢視多列索引
(1)建立表時建立多列索引
create table專業表(
專業編號char(3),
專業名稱varchar(20),keyindex_專業編號_專業名稱(專業編號,專業名稱)
showcreate table專業表 \gdrop index index_專業編號_專業名稱 on 專業表;
(2)在已經存在的表上建立多列索引
create index index_專業編號_專業名稱 on專業表(專業編號,專業名稱);
showcreate table專業表 \gdrop index index_專業編號_專業名稱 on 專業表;
(3)通過sql語句alter table建立多列索引
alter table 專業表 add indexindex_專業編號_專業名稱(專業編號,專業名稱);
showcreate table專業表 \gdrop index index_專業編號_專業名稱 on 專業表;
mysql 雜湊索引 MySQL索引之雜湊索引
雜湊索引 hash index 建立在雜湊表的基礎上,它只對使用了索引中的每一列的精確查詢有用。對於每一行,儲存引擎計算出了被索引的雜湊碼 hash code 它是乙個較小的值,並且有可能和其他行的雜湊碼不同。它把雜湊碼儲存在索引中,並且儲存了乙個指向雜湊表中的每一行的指標。在mysql中,只有me...
mysql主鍵索引 MySQL索引之主鍵索引
在mysql裡,主鍵索引和輔助索引分別是什麼意思,有什麼區別?上次的分享我們介紹了聚集索引和非聚集索引的區別,本次我們繼續介紹主鍵索引和輔助索引的區別。1 主鍵索引 主鍵索引,簡稱主鍵,原文是primary key,由乙個或多個列組成,用於唯一性標識資料表中的某一條記錄。乙個表可以沒有主鍵,但最多只...
mysql聚集索引 MySQL索引之聚集索引介紹
在mysql裡,聚集索引和非聚集索引分別是什麼意思,有什麼區別?在mysql中,innodb引擎表是 聚集 索引組織表 clustered index organize table 而myisam引擎表則是堆組織表 heap organize table 也有人把聚集索引稱為聚簇索引。當然了,聚集索...