Mysql索引复习

Mysql索引是什么

索引是一种用于快速查询和检索数据的数据结构。常见的索引结构有: B树, B+树和Hash。

Mysql索引的底层实现

以innodb为例,他的底层数据结构是B+树,其数据文件就是索引,其余的索引是辅助索引。
在辅助索引上不能覆盖查询时,回进行回表。
MySQL InnoDB数据表缺少主键会怎样

那种情况下不会用到索引

  1. Mysql的一条查询sql的执行流程是 连接器 查询缓存 分析器 优化器 执行器
    有可能在优化器这一步认为不需要走索引就不走了
  2. 你认为走了索引 其实没有 如最左匹配原则
  3. 如 like %xx
  4. 使用 OR 关键字时,OR 关键字连接的所有条件都必须使用索引。
  5. 数据差异问题,mysql认为不需要走索引
  6. 索引列上有函数运算,导致不走索引
  7. 隐式转换
  8. 不等于可能不走索引 添加额外字段

如何添加索引

  1. 给出如下sql 你会如何加索引

长度512的两个字段 你怎么加索引

添加前缀索引

  1. 联合索引a+b+c,如果where a=10 and b<10 and c=10有没有用到索引