mysql索引详细介绍简书_Mysql 数据库索引的详细介绍

一、MYSQL索引的分类

索引用于快速查找具有特定列值的行。如果没有索引,MySQL必须从第一行开始,然后读取整个表以查找相关行。表越大,成本越高。如果表中有相关​​列的索引,MySQL可以快速确定要在数据文件中间寻找的位置,而无需查看所有数据。这比按顺序读取每一行要快得多。

MYSQL的索引主要分为主键索引(PRIMARY KEY),唯一索引(UNIQUE) ,普通索引(INDEX)和全文索引(FULLTEXT) 。

主键索引:它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候指定了主键,就会创建主键索引, CREATE INDEX不能用来创建主键索引,使用 ALTER TABLE来代替。

唯一索引:与普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须一。

普通索引:这是最基本的索引,它没有任何限制。

全文索引:FULLTEXT索引用于全文搜索。只有InnoDB和 MyISAM存储引擎支持 FULLTEXT索引和仅适用于 CHAR, VARCHAR和 TEXT列。

二、索引的创建方式

(1)主键索引的创建方式:

```

方式1:ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )

比如:ALTER TABLE users ADD PRIMARY KEY ( id )

```

方式2:创建表的时候指定主键

(2)唯一索引的创建方式

```

方式1:ALTER TABLE `table_name` ADD UNIQUE  [indexName] (`column`)

比如:ALTER TABLE users ADD UNIQUE ( id )

```

```

方式2:CREATE UNIQUE INDEX index_name ON table_name (column_name)

比如:CREATE UNIQUE INDEX index_users ON users(id)

```

(3)普通索引的创建方式

```

方式1:ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

比如:ALTER TABLE users ADD INDEX index_users( id )

```

```

方式2:CREATE INDEX index_name ON table_name (column_name)

比如:CREATE INDEX index_users ON users (column_name)

```

(4)全文索引的创建方式

```

方式1:ALTER TABLE `table_name` ADD FULLTEXT ( `column` )

比如:ALTER TABLE users ADD FULLTEXT ( id )

```

## (5)联合索引的创建方式

```

ALTER TABLE `table_name` ADD INDEX index ( `id`,`collecTime` ) ;

```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值