索引

本文介绍了MySQL支持的六种索引类型及其应用场景,包括普通索引、唯一索引、全文索引等,并详细说明了如何创建和删除索引。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL支持6种索引:普通索引,唯一索引,全文索引,单列索引,多列索引,空间索引

索引的创建有利有弊,可以提高查询速度,但过多的创建索引则会占据许多磁盘空间

以下情况时候创建索引:

  经常被查询的字段,即在WHERE子句中出现的字段

  在分组的字段,即在GROUP BY子句中出现的字段

  存在依赖关系的子表和父表之间的联合查询,即主键或外键字段

  设置唯一完整性约束的字段

以下不适合创建索引:

  查询中很少使用的字段

  拥有很多重复值的字段

创建索引:mysql的存储引擎对每个表至少支持16个索引

创建表时创建普通索引(普通索引即在创建索引时,不附加任何限制条件):

  INDEX|KEY 索引名 (属性名1 (长度) ASC|DESC)  INDEX index_de (de)

在已经存在的表上创建普通索引:

  CREATE INDEX 索引名 ON 表名 (属性名 (长度) ASC|DESC)  CREATE INDEX index_de ON t_de (de)

通过SQL语句ALTER TABLE创建普通索引:

  ALTER TABLE tablename ADD INDEX|KEY 索引名 (属性名 (长度) ASC|DESC)  ALTER TABLE t_de ADD INDEX index_de (de)

自动索引:表会被系统自动创建索引,当表中某个字段设置主键或唯一完整性约束,系统会自动创建关联该字段的唯一索引

手动索引:手动在表上创建索引

唯一索引:创建索引时,限制索引的值必须是唯一的,在INDEX 前加上UNIQUE

  UNIQUE INDEX 索引名 (属性名 (长度) ASC|DESC)

全文索引:主要关联在数据类型为CHAR,VARCHAR,TEXT的字段上,以便能够更加快速的查询数据了较大的字符串类型字段

  FULLTEXT INDEX 索引名 (属性名 (长度) ASC|DESC)

多列索引:创建索引时,所关联的字段不是一个字段,而是多个字段,查询条件中只有使用了所关联字段的第一个字段,多列索引才会被使用

  INDEXT 索引名 (属性1 (长度) ASC|DESC, 属性2.。。)

删除索引:

  DROP INDEX index_name ON table_name

 

  

转载于:https://www.cnblogs.com/zawjdbb/p/7428623.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值