mysql資料庫的索引型別以及建立

2021-10-08 10:46:35 字數 2317 閱讀 2330

mysql索引型別:

1、普通索引

最基本的索引,它沒有任何限制,用於加速查詢。

建立方法:

a. 建表的時候一起建立

create table mytable ( name varchar(32) , index index_mytable_name (name) );

b. 建表後,直接建立索引

create index index_mytable_name on mytable(name);

c. 修改表結構

alter table mytable add index index_mytable_name (name);

注:如果是字串字段,還可以指定索引的長度,在列命令後面加上索引長度就可以了(例如:name(11))

2、唯一索引

索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。

建立方法:

a. 建表的時候一起建立

create table mytable ( `name` varchar(32) , unique index_unique_mytable_name (`name`) );

b. 建表後,直接建立索引

create unique index index_mytable_name on mytable(name);

c. 修改表結構

alter table mytable add unique index index_mytable_name (name);

注:如果是字串字段,還可以指定索引的長度,在列命令後面加上索引長度就可以了(例如:name(11))

3、主鍵索引

是一種特殊的唯一索引,乙個表只能有乙個主鍵,不允許有空值。一般是在建表的時候同時建立主鍵索引。

建立方法:

a. 建表的時候一起建立

create table mytable ( `id` int(11) not null auto_increment , `name` varchar(32) , primary key (`id`) );

b. 修改表結構

alter table test.t1 add constraint t1_pk primary key (id);

注:如果是字串字段,還可以指定索引的長度,在列命令後面加上索引長度就可以了(例如:name(11))

4、組合索引

指多個欄位上建立的索引,只有在查詢條件中使用了建立索引時的第乙個字段,索引才會被使用。使用組合索引時遵循最左字首集合。

建立方法:

a. 建表的時候一起建立

create table mytable ( `id` int(11) , `name` varchar(32) , index index_mytable_id_name (`id`,`name`) );

b. 建表後,直接建立索引

create index index_mytable_id_name on mytable(id,name);

c. 修改表結構

alter table mytable add index index_mytable_id_name (id,name);

5、全文索引

主要用來查詢文字中的關鍵字,而不是直接與索引中的值相比較。

fulltext索引跟其它索引大不相同,它更像是乙個搜尋引擎,而不是簡單的where語句的引數匹配。

fulltext索引配合match against操作使用,而不是一般的where語句加like。

它可以在create table,alter table ,create index使用,不過目前只有char、varchar,text 列上可以建立全文索引。

建立方法:

a. 建表的時候一起建立

create table `article` ( `id` int(11) not null auto_increment , `title` char(250) not null , `contents` text null , `create_at` int(10) null default null , primary key (`id`), fulltext (contents) );

b. 建表後,直接建立索引

create fulltext index index_article_contents on article(contents);

c. 修改表結構

alter table article add fulltext index index_article_contents (contents);

總結雖然索引可以增加查詢資料,但對於更新、建立或者刪除的時候,需要去維護索引,導致效能會受影響,因此,索引也不能建立太多。

mysql 索引型別 mysql資料庫的索引型別

mysql索引型別 1 普通索引 最基本的索引,它沒有任何限制,用於加速查詢。建立方法 建表的時候一起建立 create table mytable name varchar 32 index index mytable name name b.建表後,直接建立索引 create index ind...

mysql資料庫的索引型別

1 普通索引 最基本的索引,它沒有任何限制,用於加速查詢。建立方法 建表的時候一起建立 create table mytable name varchar 32 index index mytable name name b.建表後,直接建立索引 create index index mytable...

mysql資料庫的索引型別

最基本的索引,它沒有任何限制,用於加速查詢。建立方法 建表的時候一起建立 create table mytable name varchar 32 index index mytable name name b.建表後,直接建立索引 create index index mytable name o...