Mysql索引复习
Mysql索引是什么
索引是一种用于快速查询和检索数据的数据结构。常见的索引结构有: B树, B+树和Hash。
Mysql索引的底层实现
以innodb为例,他的底层数据结构是B+树,其数据文件就是索引,其余的索引是辅助索引。
在辅助索引上不能覆盖查询时,回进行回表。
MySQL InnoDB数据表缺少主键会怎样
那种情况下不会用到索引
- Mysql的一条查询sql的执行流程是 连接器 查询缓存 分析器 优化器 执行器
有可能在优化器这一步认为不需要走索引就不走了 - 你认为走了索引 其实没有 如最左匹配原则
- 如 like %xx
- 使用 OR 关键字时,OR 关键字连接的所有条件都必须使用索引。
- 数据差异问题,mysql认为不需要走索引
- 索引列上有函数运算,导致不走索引
- 隐式转换
- 不等于可能不走索引 添加额外字段
如何添加索引
- 给出如下sql 你会如何加索引
长度512的两个字段 你怎么加索引
添加前缀索引
- 联合索引a+b+c,如果where a=10 and b<10 and c=10有没有用到索引