为什么mysql在数据库较大的时候分页查询很慢,如何优化?
正如楼主所说,分页查询在我们的实际应用中非常普遍,也是最容易出问题的查询场景。比如对于下面简单的语句,一般想到的办法是在name,age,register_time字段上创建复合索引。这样条件排序都能有效的利用到索引,性能迅速提升。
如上例子,当limit子句变成“limit100000,50”时,此时我们会发现,只取50条语句为何会变慢?
原因很简单,
通常,我们在做分页查询时,是可以获取上一页中的某个数据标志来缩小查询范围的,比如时间,可以将上一页的最大值时间作为查询条件的一部分,sql可以优化为这样:
若对你有所帮助,欢迎点赞、关注支持哦。
java数据放在了list中,如何实现前台分页?
前端分页
数据量不大的情况,可以全部返回给前端,后端不做任何分页,一般前端组件都可以自动实现分页,我们使用的是ant的table组件
后端分页
分页一般有两种方案:
1、设置最大值(max)
这种方案适用于简单分页,起始值一直从0开始,设置返回的最大的条数。主要是控制最大条数防止内存溢出。
2、设置起始值(startindex)和条数(pagesize)
常用的分页就是从前端传入起始值和条数两个参数进行分页,从数据库拉取数据的时候就进行分页,数据按需读取是比较好的解决方案。
希望对你有帮助,谢谢
原文标题:java分页查询原理思路 为什么MySQL在数据库较大的时候分页查询很慢,如何优化?,如若转载,请注明出处:https://www.saibowen.com/tougao/19684.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。