一、索引数据结构
1. B+Tree(默认结构)
- 特点:非叶子节点仅存储索引,叶子节点包含完整数据并通过双向指针连接,支持高效范围查询和排序。
- 优势
2025年08月06日
日常写 SQL,大家都会使用 WHERE 和 GROUP BY,但真正理解它们如何一起使用索引,并不是每个人都能答得清楚。
多数教程讲的只是“最左前缀原则”,却没讲清楚字段不连续的情况会怎样影响索引命中。
今天我们就系统聊一聊,并揭开这个大家经常忽略的性能陷阱。
2024年09月25日
#第一种情况,不加索引
mysql>explain select * from news a left join new_type b on a.type_id=b.TypeId;
结果:我们看到两张表都是全表扫描,type类型全是ALL,此时性能最差
2024年09月25日
索引是可以高效的获取数据的数据结构, 对查询有很大作用. 索引对于数据库, 就像偏旁部首, 或者26个英文字母对于字典一样, 能很快的提高查询速度.
但是索引也有它的缺点:
MySQL的索引分为以下几种:
2024年09月25日
众所周知MySQL联合索引遵循最左前缀匹配原则,在少数情况下也会不遵循
创建联合索引的时候,建议优先把区分度高的字段放在第一列。
至于怎么统计区分度,可以按照下面这种方式。
创建一张测试表,用来测试:
2024年09月25日
一般都是设计联合索引,很少用单个字段做索引,因为还是要尽可能让索引数量少,避免磁盘占用太多,影响增删改性能。
有个表存储学生成绩,id是自增主键,包含学生班级、学生姓名、科目名称、成绩分数四个字段,平时查询,可能比较多的就是查找某个班的某个学生的某个科目的成绩。