底层结构
MySQL中索引底层采用了B+树结构。
索引失效?
当我们使用左或者左右模糊匹配的时候,也就是 like %xx 或者 like %xx% 这两种方式都会造成索引失效。
为什么?
当查询时,比如表中有张某、李某、赵某、张三....,对 like %某 进行模糊查询时,查询结果就可能会是张某、李某、赵某等等,所以不知道从哪个索引值开始比较,于是只能通过全盘扫描的方式。
索引覆盖?
就是不需要回表,只从索引中就能得到。假如我们有一个联合索引(A,B,C),这时我们要查询(A,B,C,D)时,先通过联合索引查到(A,B,C,D)所在主键,再通过主键查到这条信息。这就是回表。而假如我们查询(A,B,C)时,这时可以直接查询出来,不需要回表。