什么是mysql的联合索引,如何建立mysql的索引

什么是mysql的联合索引,如何建立mysql的索引,第1张

联合索引是由多个字段组成的索引。CREATE

[UNIQUE|FULLTEXT|SPATIAL]

INDEX

index_name[USING

index_type]ON

tbl_name

(index_col_name,...)index_col_name:col_name[(length)]

[ASC

|

DESC]如果你经常要用到多个字段的多条件查询,可以考虑建立联合索引,一般是除第一个字段外的其它字段不经常用于条件筛选情况,比如说a,b

两个字段,如果你经常用a条件或者a+b条件去查询,而很少单独用b条件查询,那么可以建立a,b的联合索引。

索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索包含多个列。

MySQL索引类型包括:

(1)普通索引

这是最基本的索引,它没有任何限制。它有以下几种创建方式:

◆创建索引

CREATE

INDEX

indexName

ON

mytable(username(length))

如果是

CHAR,VARCHAR类型,length可以小于字段实际长度如果是BLOB和TEXT类型,必须指定

length,下同。

◆修改表结构

ALTER

mytable

ADD

INDEX

[indexName]

ON

(username(length))

创建表的时候直接指定

CREATE

TABLE

mytable(

ID

INT

NOT

NULL,

username

VARCHAR(16)

NOT

NULL,

INDEX

[indexName]

(username(length))

)

删除索引的语法:

DROP

INDEX

[indexName]

ON

mytable

(2)唯一索引

它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:

◆创建索引

CREATE

UNIQUE

INDEX

indexName

ON

mytable(username(length))

◆修改表结构

ALTER

mytable

ADD

UNIQUE

[indexName]

ON

(username(length))

◆创建表的时候直接指定

CREATE

TABLE

mytable(

ID

INT

NOT

NULL,

username

VARCHAR(16)

NOT

NULL,

UNIQUE

[indexName]

(username(length))

)

(3)主键索引

它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:

CREATE

TABLE

mytable(

ID

INT

NOT

NULL,

username

VARCHAR(16)

NOT

NULL,

PRIMARY

KEY(ID)

)

当然也可以用

ALTER

命令。记住:一个表只能有一个主键。

(4)组合索引

为了形象地对比单列索引和组合索引,为表添加多个字段:

CREATE

TABLE

mytable(

ID

INT

NOT

NULL,

username

VARCHAR(16)

NOT

NULL,

city

VARCHAR(50)

NOT

NULL,

age

INT

NOT

NULL

)

1.添加PRIMARY KEY(主键索引)

mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )

2.添加UNIQUE(唯一索引)

mysql>ALTER TABLE `table_name` ADD UNIQUE (

`column`

)

3.添加INDEX(普通索引)

mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

4.添加FULLTEXT(全文索引)

mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`)

5.添加多列索引

mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8680915.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-19
下一篇2023-04-19

发表评论

登录后才能评论

评论列表(0条)

    保存