索引最左前缀原理
示例:下面哪一条sql会走索引?
下面是具体示例:
插入的顺序和查询出来的数据顺序是不一样的,这里就涉及到底层的一些原理
mysql是如何选择最优索引的
插入数据时 page是怎么生成的呢?
插入第一行数据:
插入第二行数据:
按照主键顺序插入
插入第三条数据:
目录项:
联合索引
根据bcd联合索引找到主键的值,然后拿着这个主键去主键索引中再找一次,我就可以定位到我要的数据
下面的情况会不会走索引呢?
上面的查询不会走索引。
下面的情况会不会走索引呢?
上面的查询会走索引。
下面的情况是不会走索引的。
但是下面的情况又会走索引了。
如果不用select * 也会走索引的。
虽然查找出来的记录是不完整的记录,但是这些记录已经包含了b字段,所以不需要再回表查询,直接返回b字段了。
下面的情况也是可以走索引的。
下面的情况会不会走索引?
上面的情况走索引的话不需要排序,但是要回表;如果是全表扫描的话需要排序,但不需要回表
我们对e字段创建索引
下面的几种sql能走索引吗,1能 0不能
abc会转为数字0,所以select 结果为1
如果是数字的话会转为对应的数字,那么select就为0