How to efficiently show reports and tables for huge dataset in laravel?
我之前在我的网站上使用数据表作为报告,目前它处理3到4个表,每个表中有大约3K到4K条记录。数据表在客户机端或服务器端,甚至在服务向DOM呈现记录的速度有点慢时,单击分页链接所花费的时间几乎与加载页面所花费的时间相同。所以我转向了默认情况下的laravel paginator,虽然它缺乏数据表提供的灵活性,但我在它上实现了自己的Ajax搜索来实现这一点。我想了解开发人员使用什么其他方法来显示报表,基本上是以表格结构显示,表格结构可能包含过去4到5年的数据,并且页面速度很好。我实施了热切的加载来提高实际工作的速度,但没有达到那种程度。
如果您没有在前端和后端犯下巨大的错误,例如一次加载所有数据并在DOM中对它们进行分页,那么主要的问题通常是关于数据库设计和查询。当然,服务器的功能包括CPU、RAM等…非常重要。
3 to 4 tables with around 3k to 4k records
这个数据量非常小,当您检查索引时可能会解决您的问题。如果速度仍然很慢,尝试使用Laravel提供的缓存系统之一。
当您接触到数以百万计的数据时,您可以利用一些高级解决方案,如数据库切分、弹性搜索、负载平衡、微服务…
这是一个很大的主题,但你可以从这个主题开始。别忘了每种类型的数据库都有不同的特性和解决方案。
I implemented eager loading to improve the speed which did work, but not to that extent.
此外,您还可以在这里比较Laravel的热切加载和查询生成器的性能。