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

覆盖索引和超大分页优化

覆盖索引

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

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

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

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

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

MySQL超大分页优化

使用覆盖索引解决

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

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

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

相关推荐
小碗羊肉9 小时前
【从零开始学Java | 第三十一篇下】Stream流
java·开发语言
❀͜͡傀儡师9 小时前
Spring AI Alibaba vs. AgentScope:两个阿里AI框架,如何选择?
java·人工智能·spring
aq55356009 小时前
Laravel10.x重磅升级,新特性一览
android·java·开发语言
一 乐10 小时前
酒店预订|基于springboot + vue酒店预订系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·酒店预订系统
报错小能手10 小时前
ios开发方向——swift错误处理:do/try/catch、Result、throws
开发语言·学习·ios·swift
Moe48810 小时前
Spring AI Advisors:从链式增强到递归顾问
java·后端
敖正炀10 小时前
ReentrantReadWriteLock、ReentrantLock、synchronized 对比
java
网域小星球10 小时前
C 语言从 0 入门(十七)|结构体指针 + 动态内存 + 文件综合实战
c语言·开发语言·文件操作·结构体指针·动态内存·综合项目
cike_y10 小时前
Java反序列化漏洞-Shiro721流程分析
java·反序列化·shiro框架
aq553560010 小时前
三大编程语言深度对比:C# vs 易语言 vs 汇编
开发语言·汇编·c#