1. 基本用法:
查看当前数据库下某表的索引
SHOW INDEX FROM your_table_name;
格式化输出,更易读(在MySQL命令行中)
SHOW INDEX FROM your_table_name\G
查看指定数据库中的表索引
SHOW INDEX FROM your_table_name FROM your_database_name;
2. 解读输出:
每一行代表索引中的一个列。
如果一个索引由多列组成(复合索引),你会看到多行具有相同的 `Key_name`,但 `Seq_in_index` 和 `Column_name` 不同。
重点关注 `Cardinality`:比较不同索引的基数。一个性别字段的索引基数可能只有 `2`(男/女),效果很差;而一个用户名字段的索引基数可能接近表的总行数,效果非常好。
`Non_unique` 和 `Key_name` 可以帮你快速识别出哪些是唯一约束,哪些是普通索引。
示例分析
根据您提供的 `tb_stu_info2` 的输出:
SHOW INDEX FROM tb_stu_info2\G
我们可以得出以下结论:
1. 索引类型:这是一个唯一索引 (`Non_unique: 0`),因为创建时使用了 `UNIQUE` 关键字。
2. 索引名称:索引的名字是 `height` (`Key_name: height`)。
3. 索引字段:它是一个单列索引(`Seq_in_index: 1`),建立在 `height` 字段上 (`Column_name: height`)。
4. 排序方式:索引按升序存储 (`Collation: A`)。
5. 空值约束:`height` 字段允许为 NULL (`Null: YES`)。
6. 索引结构:使用 B+Tree 数据结构实现 (`Index_type: BTREE`)。
7. 当前状态:表可能还没有数据或统计信息未更新 (`Cardinality: 0`)。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程