索引建立在資料庫的表物件上,由表中的乙個或多個字段生成的鍵組成,這些鍵被資料結構(例如b樹)組織起來,目的是通過索引快速地定位與鍵值相關的資料物件。mysql支援6種索引:普通索引;唯一索引;全文索引;單列索引;多列索引;空間索引。本文,我將分別介紹關於這6種索引建立,檢視,刪除的基本操作。
語法形式如下:
create table table_name(
att_name_1 data_type_1,
att_name_2 data_type_2,
...att_name_n data_type_n,
index index_name (att_name)
);語句index index_name (att_name)用來建立索引,其中關鍵字index也可以用key替代,index_name是建立的索引名,括號裡面的att_name表示作為索引的字段。需要注意的是,在att_name後面還可以新增關鍵字asc用來指定為公升序排序或者desc用來指定降序排序。
舉個例子,按照下面的**建立乙個學生資訊表:
create table tab_student(
id varchar(20),
score int,
index index_id (id)
);上面的**中,設定學生的id為索引。我們可以用語句show create table tab_student檢視是否將索引設定成功,結果如下圖所示:
此外,可以用下面的**校驗表中索引是否被使用:
explain
select * from tab_student where id = 1
執行結果如下圖所示:
可見,possible keys是所建立的索引名,而key為空,說明該索引存在,但未開始使用。
語法形式如下:
create index index_name on table_name (att_name)
);其中,index_name為要建立的索引名,table_name是要建立索引所在的表名,att_name是作為索引的字段。這種情況是處理對已經存在的表建立索引的情況。
建立好索引後,檢視的方法不變。此處略過。
通過我的上一篇部落格。。。可以知道alter table是用來修改表的,那當然也可以為存在的表建立索引了。實現方法如下:
alter table table_name
add index att_name_1;
檢視的方法與上面相同,略。
建立與檢視的方法與普通索引幾乎相同,只是多了乙個關鍵字unique。
語法形式如下:
create table table_name(
att_name_1 data_type_1,
att_name_2 data_type_2,
...att_name_n data_type_n,
unique index index_name (att_name)
);語法形式如下:
create unique index index_name on table_name (att_name)
);語法形式如下:
alter table table_name
add unique index att_name_1;
建立與檢視的方法與普通索引幾乎相同,只是多了乙個關鍵字fulltext。
語法形式如下:
create table table_name(
att_name_1 data_type_1,
att_name_2 data_type_2,
...att_name_n data_type_n,
fulltext index index_name (att_name)
);語法形式如下:
create fulltext index index_name on table_name (att_name)
);語法形式如下:
alter table table_name
add fulltext index att_name_1;
上面這些都是以乙個字段作為索引,因此我們也把他們統稱為「單列索引」,而有時需要關聯多個字段建立索引(關聯多列索引的目的就是提公升查詢效率)。因為與普通索引的建立和檢視類似,所以下面我迅速過一下。
語法形式如下:
create table table_name(
att_name_1 data_type_1,
att_name_2 data_type_2,
...att_name_n data_type_n,
index index_name (att_name_1, att_name_2, ..., att_name_m)
);語法形式如下:
create index index_name on table_name (att_name_1, att_name_2, ..., att_name_m)
);語法形式如下:
alter table table_name
add index att_name_1;
空間索引是對空間資料型別的字段建立的索引,mysql中的空間資料型別有4種,分別是geometry、point、linestring、polygon。mysql使用spatial關鍵字進行擴充套件,使得能夠用於建立正規索引型別的語法建立空間索引。需要注意的是,建立空間索引的列,必須將其宣告為not null,而且空間索引只能在儲存引擎為myisam的表中建立。
語法形式如下:
create table table_name(
att_name_1 data_type_1,
att_name_2 data_type_2,
...att_name_n data_type_n,
spatial index index_name (att_name)
) ;一般空間索引關聯的是空間位置的字段,我寫個例子:
create table tab_poi (
loc point not null,
keyword varchar(20),
spatial index loc_index (loc)
) engine = myisam;
執行上述**,並檢視生成的表,效果如fig.3所示。其中,位置的資料型別為point,表示一組(x, y)座標。關於mysql中具體的資料型別的定義大家可以參考這篇博文:mysql資料型別
!這裡寫描述
同理,在已經存在的表上建立空間索引,以及通過alter table語句建立空間索引的方法相信大家可以自己總結出來了。
上面說的是對索引的建立,下面看看如何刪除。很簡單,一行**而已:
drop index index_name (att_name) on table_name
mysql索引的基本操作
1.建立表時新增索引 create table user id int,name varchar 30 age int,not null,code text not null,fulltext name,index ind code primary key id 2.新增primary key 主鍵...
Swift教程之基本操作符
本章介紹swift中的常見操作符,並介紹使用自定義操作符實現複雜運算。術語 操作符包括一元 二元和三元運算子 賦值運算子 簡單賦值運算 let b 10 var a 5 a b元組賦值運算 let x,y 1,2 x 等於 1,y 等於 2與c和objective c不同的是,swift的賦值運算子...
MySQL使用教程 六 索引的操作
1 建立和檢視普通索引 普通索引 建立索引時,不附加任何限制條件 唯 一 非空等限制 該型別的索引可以建立在任何資料型別的字段上。1 建立表時建立普通索引 語法形式 create table table name 屬性名1 資料型別,屬性名2 資料型別,屬性名3 資料型別,index key 索引名...