1.B+树
1)节点内有冗余,但并非一条记录内容完全冗余,只是冗余主键
2)有指针。叶子节点存储记录的完整内容,在叶子之间使用指针进行连接
3)一个节点内可以有多个值。
上面这个表就是根据主键进行建立B+树。下面这个表是根据三个字段建立索引,因此在 叶子节点存储主键值,索引到叶子节点之后回表到上面那个表对结果返回。
2. 若存在使用多个字段建立索引,那么叶子节点存储主键,如果是 select * .... 那么就会根据主键进行回表。如果通过该索引回表的方式代价高,那么就会全表扫描。
例如 select * from 表 where b>1 该情况导致回表次数太多,所以会选择全表扫描
3.最左前缀原则。 比如 *11 不走索引,例如 %11也是同样不走索引。但是 11*是可以走索引的
tips:
select 0='c' 结果是1 。原因: mysql中将数字字符转为数字,将非数字字符转为 0。