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 索引名(字段名)

②修改普通索引名称

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

③删除普通索引

DROP INDEX 索引名 ON 表名; 

2.唯一索引

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

①创建唯一索引

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

②修改唯一索引名称

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

③删除唯一索引

DROP INDEX 索引名 ON 表名; 

3.主键索引

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

①创建主键索引

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

4.组合索引

左前原则

①创建组合索引

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

前缀索引

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

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

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

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

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

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐