大分页也就是分页查询场景中,分页page比较靠后的查询,这往往会带来性能问题,也就是常说的大分页问题,比如常见的SQLSELECTFROMtablewherekid=1342andtype=1orderidasclimit149420,20。
分页查询,一般使用场景包括业务查询展示和全量数据查询这两种,实际数据分页查询中,都是首先经过业务服务然后到存储层读取数据,那么优化的话可以在业务服务层做,也可以在存储层来做。下面就按照业务服务层优化和存储层优化两个方面分别讨论。
对于ES的scroll更详细的流程来说是,它先做一次初始化搜索把所有符合搜索条件的结果缓存起来生成一个快照,然后持续地、批量地从快照里拉取数据直到没有数据剩下。而这时对索引数据的插入、删除、更新都不会影响遍历结果,因此scroll并不适合用来做实时搜索。Scan是搜索类型,告诉Elasticsearch不用对结果集进行排序,只要分片里还有结果可以返回,就返回一批结果。scroll-scan使用中不能跳页获取结果,必须一页接着一页获取。
分页sql 是拼起来的 现在怎么优化可以提高展示速度
: 优化思路: 1、试试并发多线程访问,然后把多线程获取的结果合并在一起。 2、做索引,加快查询速度。 3、把经常查询的东西做缓存。
1。 看能不能建立索引(和其他几位仁兄一致)
2。 能否不用like 如果tb_one中的id2不是主键也不是索引,可以改为substr(id2,1,2) = 'xy'
3。 排序尽量不要,既然LZ说了这是前提那就省略不说
4。 加hint并行处理(这个会提高不少,但需要数据库开启并行,并且硬件足以支持)
5。 这个肯定是全表扫描,不用想(都like了)
6。 根据你的时间条件,可以写成substr(instime) = '20130108'
7。 加表别名,并不要使用星号
9。 少些几个子查询。。。
以上就是关于大变分页查询如何设计全部的内容,包括:大变分页查询如何设计、分页查询中如何使用多线程加快处理速度、Oracle 分页查询在子查询中使用了 排序和like 会影响效率吗 怎样优化呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)