MySQL 查看索引(图文教程)
一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 - 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/
截止目前, 星球 内专栏累计输出 72w+ 字,讲解图 3103+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2400+ 小伙伴加入学习 ,欢迎点击围观
索引在数据库中扮演着至关重要的角色,它能显著提升数据查询的效率。然而,为了更好地管理和优化数据库,了解和查看现有的索引是非常重要的。本小节中,小哈将演示在 MySQL 中,要如何查看表的索引,包括使用 SHOW INDEX
语句、INFORMATION_SCHEMA
数据库以及图形化工具。
1. 使用 SHOW INDEX
语句查看索引
SHOW INDEX
语句是 MySQL 提供的一个非常便捷的工具,用于查看表中定义的索引。它可以显示表中所有索引的详细信息。
语法
SHOW INDEX FROM table_name;
table_name
是你要查看索引的表的名称。
示例
假设有一个名为 t_user
的表,使用以下语句查看该表的索引:
SHOW INDEX FROM t_user;
示例输出:
输出字段解释
- Table:索引所在的表。
- Non_unique:是否唯一索引。0 表示唯一索引,1 表示非唯一索引。
- Key_name:索引的名称。
- Seq_in_index:列在索引中的序列号,从 1 开始。
- Column_name:列名称。
- Collation:列的排序方式。A 表示升序,NULL 表示未排序。
- Cardinality:索引中唯一值的近似数目。可以用来估算表的大小。
- Sub_part:如果是部分索引,则为索引的字符数。
- Packed:指示关键字如何被压缩。NULL 表示没有压缩。
- Null:如果列可以包含 NULL,则为 YES。
- Index_type:索引使用的类型(例如 BTREE)。
- Comment:索引的注释。
- Index_comment:索引的附加信息。
2. 使用 INFORMATION_SCHEMA
查看索引
INFORMATION_SCHEMA
是 MySQL 提供的一个系统数据库,其中包含了关于数据库对象的信息。可以通过查询 INFORMATION_SCHEMA.STATISTICS
表来获取索引信息。
查询语法
SELECT
TABLE_NAME,
NON_UNIQUE,
INDEX_NAME,
SEQ_IN_INDEX,
COLUMN_NAME,
COLLATION,
CARDINALITY,
SUB_PART,
PACKED,
NULLABLE,
INDEX_TYPE,
COMMENT,
INDEX_COMMENT
FROM
INFORMATION_SCHEMA.STATISTICS
WHERE
TABLE_SCHEMA = 'database_name'
AND TABLE_NAME = 'table_name';
database_name
是数据库的名称。table_name
是表的名称。
示例
假设要查看 t_user
表的索引,并且该表位于 test_db
数据库中,使用以下语句:
SELECT
TABLE_NAME,
NON_UNIQUE,
INDEX_NAME,
SEQ_IN_INDEX,
COLUMN_NAME,
COLLATION,
CARDINALITY,
SUB_PART,
PACKED,
NULLABLE,
INDEX_TYPE,
COMMENT,
INDEX_COMMENT
FROM
INFORMATION_SCHEMA.STATISTICS
WHERE
TABLE_SCHEMA = 'test_db'
AND TABLE_NAME = 't_user';
示例输出与 SHOW INDEX
类似,但可以在 SQL 查询中灵活使用,例如与其他查询组合,或者按特定条件过滤。
3. 使用图形化工具 Navicat 查看索引
除了通过命令行来查看索引,另外,也可以通过图形客户端来查看。这里演示一下,如何通过 Navicat 查看索引,如下图所示:
在目标表上右键 | 设计表 | 索引 , 即可查看该表的所有索引。
结论
通过本文的介绍,我们了解了在 MySQL 中查看索引的多种方法。无论是使用 SHOW INDEX
语句、查询 INFORMATION_SCHEMA
数据库,还是通过图形化工具,都可以方便地查看表中的索引信息。这些方法不仅帮助我们理解和管理现有的索引,还能为数据库优化提供有力支持。在实际操作中,根据需求选择合适的方法,可以更高效地管理数据库索引。