查询
全表查询:对聚簇索引进行遍历
索引查询:使用索引
单表查询
- const 等值查询(定位一条记录) 聚簇索引 唯一二级索引
- ref 等值比较 (可以多条记录) 二级索引
- ref_null 等值 或null 比较 (多条记录) 二级索引
- range 范围查询
- index 遍历二级索引记录
- all 全表查询
- 简化,替换true
- 多个索引,结果大,回表代价大:合并
- 交集: intersection (and 等值)分别索引,结果相交,再回表 (减少回表的随机io)
- 并集:union (or 等值)分别索引,结果做并集,在回表
- 排序并集:sort_union (or 非等值) 分别索引 排序,在并集,再回表
连接原理
- 嵌套循环连接
- 被驱动表使用索引
- 基于块嵌套循环连接 :数据量上亿条,内存放不下,需要磁盘io,为了减少io,提出join buffer,默认256kb,最小128kb,将驱动表装入,一次性和被驱动表在内存中的数据匹配完;(减少* 查询列表)