网站建设结课总结,广东的网站备案,竞价单页网站制作教程,自定义wordpress的字体大小分析回答
什么是回表查询#xff1f;
通俗的讲就是#xff0c;如果索引的列在 select 所需获得的列中#xff08;因为在 mysql 中索引是根据索引列的值进行排序的#xff0c;所以索引节点中存在该列中的部分值#xff09;或者根据一次索引查询就能获得记录就不需要…分析回答
什么是回表查询
通俗的讲就是如果索引的列在 select 所需获得的列中因为在 mysql 中索引是根据索引列的值进行排序的所以索引节点中存在该列中的部分值或者根据一次索引查询就能获得记录就不需要回表如果 select 所需获得列中有大量的非索引列索引就需要到表中找到相应的列的信息这就叫回表。
一张图看懂 先通过普通索引定位到主键值id5在通过聚集索引定位到行记录 这就是所谓的回表查询先定位主键值再定位行记录它的性能较扫一遍索引树更低。
覆盖索引
MySQL官网只需要在一棵索引树上就能获取SQL所需的所有列数据无需回表速度更快。
如果一个索引(如组合索引)中包含所有要查询的字段的值那么就称之为覆盖索引如
SELECT user_name,city,age FROM user_test WHERE user_namelouxj AND age25;
复制代码
因为要查询的字段(user_name, city, age)都包含在组合索引的索引列中所以就使用了覆盖索引查询查看是否使用了覆盖索引可以通过执行计划中的Extra中的值为Using index则证明使用了覆盖索引覆盖索引可以极大的提高访问性能。 喵呜面试助手一站式解决面试问题你可以搜索微信小程序 [喵呜面试助手] 或关注 [喵呜刷题] - 面试助手 免费刷题。如有好的面试知识或技巧期待您的共享