laravel自带分页出现因为count()查询超时问题
在laravel中内置了一个非常好用的分页类,基本上很容易就能解决数据展现的问题,但是在mysql中innodb引擎下就出现了他的弊端了。在laravel的分页中,为了查询总数据数,便于分页,每次查询都会count但是在innodb下,count是没有优化的,在数据量不大的情况下确实能够带来很大的方便。但是在数据量非常大的情况下,会导致count查询非常的慢,后期数据量的持续增加导致无法读取数..
·
在laravel
中内置了一个非常好用的分页类,基本上很容易就能解决数据展现的问题,但是在mysql中innodb引擎下就出现了他的弊端了。
在laravel
的分页中,为了查询总数据数,便于分页,每次查询都会count
但是在innodb
下,count
是没有优化的,在数据量不大的情况下确实能够带来很大的方便。
但是在数据量非常大的情况下,会导致count
查询非常的慢,后期数据量的持续增加导致无法读取数据,页面超时。
解决思路:
1.使用简单分页simplePaginate
,这样不再去count
查询总数,但是页面也只能上一页
和下一页
,牺牲了完整性
2.配合ajax
做延迟加载,通过limit
加偏移
进行数据慢慢加载,以前的php laravel+jq实现滚动到底部进行数据加载,延时加载,懒加载
有写
当然使用mysiam
引擎就没有这方面的问题,但是在有数据并发插入还是innodb
比较好,也可以进行读写分离去考虑解决方法
更多推荐
已为社区贡献1条内容
所有评论(0)