Java面试题:覆盖索引和超大分页优化

覆盖索引和超大分页优化

覆盖索引

覆盖索引:查询使用了索引,且需要返回的列在索引中全部能找到

根据主键查询的sql语句必然是覆盖索引:

主键为聚集索引,索引中包含所有数据

非聚集索引中包含主键,所以查询二级索引和对应主键的查询语句也是覆盖索引

非覆盖索引:需要回表查询

MySQL超大分页优化

使用覆盖索引解决

在数据量较大时,使用limit进行分页查询,越向后,查询效率越低(深度分页)

创建覆盖索引可以较好地提高性能,通过覆盖索引加子查询进行优化

对分页查询语句使用覆盖索引只查询主键,通过子查询对查到的主键进行连表,避免大量数据的回表查询

相关推荐
Navigator_Z14 分钟前
C++ //练习 14.41 你认为C++11新标准为什么要增加lambda?对于你自己来说,什么情况下会使用lambda,什么情况下会使用类?
开发语言·c++·算法
詹姆斯bind1 小时前
使用Python实现钉钉Stream模式服务开发及内部程序通信
开发语言·python·钉钉
java6666688881 小时前
使用Java实现区块链技术的应用开发
java·开发语言·区块链
huanhuan_m11 小时前
springboot2.7.6 集成swagger
java·开发语言·spring boot
Random_N12 小时前
C语言 求最大公约数和最小公倍数
c语言·开发语言·算法
极客代码2 小时前
深入剖析C语言中volatile与register关键字的实战应用与底层原理
c语言·开发语言·volatile·register
ShenLiang20253 小时前
TF-IDF计算过程一步步推导详解含代码演示
开发语言·python
959y5 小时前
[Go 微服务] Kratos 使用的简单总结
开发语言·golang·kratos
虫小宝5 小时前
如何在Java中实现批量数据处理
java·开发语言
PeterClerk5 小时前
基于Pygame的贪吃蛇小游戏实现
开发语言·python·pygame