mysql資料庫的索引型別

2021-10-03 13:06:30 字數 2616 閱讀 2545

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資料庫的索引型別

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

資料庫mysql索引 資料庫 mysql索引

mysql 索引 mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。打個比方,如果合理的設計且使用索引的mysql是一輛蘭博基尼的話,那麼沒有設計和使用索引的mysql就是乙個人力三輪車。索引分單列索引和組合索引。單列索引,即乙個索引只包含單個列,乙個表可...