当前位置:   article > 正文

MySQL有哪些索引?

mysql有哪些索引

MySQL主要有五种索引类型,分别是:

  1. 普通索引(NORMAL)
  2. 唯一索引(UNIQUE)
  3. 主键索引 (PRIMARY)
  4. 组合索引
  5. 全文索引(FULLTEXT)

索引命名规范
主键索引名为pk_字段名;【强制】
唯一索引名为uk_字段名;
普通索引名则为idx_字段名。
说明:pk_ 即primary key;uk_ 即 unique key;idx_ 即index的简称。

查询表中所有索引
show index from 表名
show KEYS from 表名

1.普通索引

①创建普通索引

CREATE INDEX 索引名 ON 表名(字段名); (这种方式pgsql通用)
或
ALTER table 表名 ADD INDEX 索引名(字段名)
  • 1
  • 2
  • 3

②修改普通索引名称

ALTER TABLE 表名 RENAME INDEX 旧索引名 TO 新索引名
  • 1

③删除普通索引

DROP INDEX 索引名 ON 表名; 
  • 1

2.唯一索引

字段可以为null,不能重复;表可以创建多个唯一索引

①创建唯一索引

CREATE UNIQUE INDEX 索引名 ON 表名(字段名);ALTER table 表名 ADD UNIQUE INDEX 索引名(字段名)
  • 1
  • 2
  • 3

②修改唯一索引名称

ALTER TABLE 表名 RENAME INDEX 旧索引名 TO 新索引名
  • 1

③删除唯一索引

DROP INDEX 索引名 ON 表名; 
  • 1

3.主键索引

字段不能为null,不能重复;表只能创建一个主键索引

①创建主键索引

alter table 表名 add primary key(字段名)
  • 1

4.组合索引

左前原则

①创建组合索引

CREATE INDEX 索引名 ON 表名(字段名1,字段名2);
  • 1

前缀索引

在 MySQL 中,“前缀索引”(Prefix Index)指的是对列的一个前缀(即列值的开头一部分)进行索引。使用前缀索引可以让你只对列值的一部分创建索引,并不是对整个列值进行索引。

举个例子,假设你有一个包含 URL 的列,但是你只对 URL 的前面一部分进行查询。这时你可以考虑创建一个前缀索引,而不是对整个 URL 列进行索引。

CREATE INDEX index_name ON table_name (column_name(length));
  • 1

前缀索引可以减小索引占用空间,提升性能

其他相关文章:
导致mysql索引失效的原因有哪些

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/193311
推荐阅读
相关标签
  

闽ICP备14008679号