阿里二面:如何优化带排序的分页查询 | 讲得最通俗易懂的一集

作者: Java面试题分享分类: 计算机技术 发布时间: 2024-05-27 15:35:15 浏览:6283 次

阿里二面:如何优化带排序的分页查询  |  讲得最通俗易懂的一集

嘻哈程序猿:
你这id是自增长的,如果id时uuid字符串怎么解决

【回复】建个主过滤字段+排序字段的联合索引
灰色轨迹·:
这么多年了,还是这套操作,索引覆盖,游标查询。

愿意透露姓名的观众:
最后一个例子是不是有问题 假设有两条数据,每页1条,递减排序 得分 id 10 30 6 40 第一页数据是 10 30 没问题 第二页 score <= 10 and id <= 30, 不是取不到数据了?

【回复】最后一个例子确实有问题,一般来说,order by score desc,那条件应该就只有一个score < ?,id条件不该加上的,排序字段用谁,条件里面就带谁,等于是通过条件字段的索引过滤掉大部分数据,以此提高查询效率
【回复】最后确实有问题,可能子查询会好有一点。
【回复】所以查询第二页的时候,条件应该是 score <= 10 and id >30
叫我David吧:
感觉它的的解释器不够智能,本来他就应该自动优化成找先查id,最终只批量回表一次,而不是在排序过程中每次都回表

AI视频小助理:
--本内容由 @洛河之羽 大佬下凡召唤,热心市民@AI视频小助理闪现赶来 一、如何优化带排序的分页查询,通过增加索引的方式提高了查询效率和执行时间,浅分页和深分页的执行效率都有所提高。 00:01 - 讨论带排序的分页查询优化 01:04 - 深分页和浅分页的执行效率相同,但深分页扫描行数更多 02:35 - 通过增加索引来优化带排序的分页查询,浅分页的执行效率得到提高 二、在数据库中使用索引来优化深分页查询的执行效率,并分析了索引的数据结构和使用方法,以及强制索引和联合索引的优劣。 03:02 - 深分页查询的执行时间在添加索引前后没有得到太大的变化 04:41 - 强制索引可以避免额外的执行任务,但回表和排序成本较高 05:51 - 添加联合索引可以消除全表扫描,提高查询效率 三、如何优化数据库查询效率,包括索引、联合索引、子查询等方法。同时还如何手动回表和优化数据结构等技巧。 06:05 - 使用方法比之前更快,但存在缺点:需求变更时需要增加字段 06:55 - 使用id来查询数据,避免联合索引干扰,提高效率 08:35 - 数据结构优化:按降序排列,避免第一页和第三页的数据重叠 四、如何优化带排序的分页查询,包括显分页、深分页、手动回表、联合索引等方案,最后提出了一种从右方着手限制分页的方案。 09:00 - 优化带排序的分页查询,可以通过倒序排列id来提高效率 09:58 - 使用range类型的C口可以提高执行效率,但要注意最大值的限制 11:18 - 可以通过传递每一页最后一条数据的id和分数来优化分页查询 实名羡慕up这溢出屏幕的才华[点赞][点赞][点赞],YYDS!快来一键三连吧[热词系列_优雅]

无聊b友:
后台管理场景如何快去获取总条目数前端用来算总页数

【回复】增删的时候就要做计数表[doge]
【回复】直接全部数据给前端,由前端筛选排序分页
无聊932039:
虽然一直知道分页数字越大,性能越低,却从没想过怎么优化。今天学到了,有用。

qpm_q:
优化2 中,深分页为什么需要做那么多次回表呢?通过索引排序获得20个id,求楼主解答

搬砖的代码:
直接限制可以查询的数据量。若有查询历史数据的需求 就从冷库里面查

科技猎手 IT 技术 程序员 编程 教程 计算机技术 java Java Java面试

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

更多相关阅读