什么是mysql索引
mysql索引是帮助mysql高校获取数据的数据结构,实现了高级查找算法的数据结构,索引一般以文件形式存储在磁盘上。
回表
索引列 name。 select * from table where name = 'ma'; 通过name索引找到ma元素对应的主键为 1,但是select * ,所以需要回到table查询所有字段。即为回表
覆盖索引
select id from table where name = 'ma'; 查询到ma 主键为id,只select了id,所以可以直接返回。即为覆盖索引。
最左匹配
联合索引 name、age
查询:select * from table where age = 3; 由于是联合索引,但是只查询了age,不走索引! 除非 where name='zhang' and age=3 或者 age =3 and name = 'zhang' 或者 name = 'zhang' 。必须匹配到最左的索引字段
谓词下推
select * from table where name = a a