内容:日常业务中遇到单表数据量超亿级时,使用limit offset做分页会出现越往后翻页查询越慢的问题,想请教大家在OceanBase中针对这类场景的最优分页优化方案,包括索引设计、SQL写法调整、数据库参数调优等方面的实操技巧,以及不同方案的性能对比和适用场景。
3 个赞
通常的做法就是在页与页之间要传递边界值,通过where ID > LastPageMaxId 来实现offset避免深度分页的性能衰减
3 个赞
数据库参数调优
-
开启分区裁剪:确保
ob_enable_partition_pruning = ON,让查询仅扫描目标分区。 -
调整索引缓存:增大
ob_index_block_cache_size,提升索引命中率。 -
优化并行查询:开启
ob_enable_parallel_query,让大分页查询利用多线程并行扫描。
1 个赞
感谢
1 个赞
谢谢分享,对我有帮助,又学到了新知识