【laracon 2019--中文译制】Laravel Eloquent的性能模式

864 阅读2分钟

Laravel的Eloquent Model给我们的日常开发带来了很大的便利,写起来既简单,又能保证性能和安全,可能对大部分人来说,只要在用Eloquent的时候,留意一下n+1查询的问题就行了,只要避免了n+1查询的问题,就基本没什么可顾虑的了。

但真的是这样吗?有时候我们也太在意数据查询了,这里与其说“在意”,其实不如说“不放心”,我们生怕让数据库“多”做些什么,好像它注定做不好似的,但其实数据库是非常快的,很多工作在数据库中去做,总比查询了大量数据,然后放到PHP的内存中去做,要更快得多,更有效的多。

所以有的时候,当我们想方设法避免了n+1查询了,却又导致往PHP内存里填充了太多不必要的数据,导致内存占用升高翻倍,页面加载速度翻倍,laravel聚合的Model数量翻倍,这反而导致了性能的下降,尤其当你数据量多,应用到了一定规模的时候。

怎么样既避免n+1查询,同时又能充分利用起数据库,不在PHP端做过多的不必要操作,从而保证最大性能呢?这就是我们这个专场要解决的了。

专场里,作者以一个常见的应用为例,展示我们常见的一些Eloquent数据获取途径,展示期间的一些问题,展示了在提高Eloquent性能上的常见模式,或者说套路。

值得庆贺的是,作者期间讲的子查询的几个方法,从laravel 6.0开始,已经默认加入到laravel核心代码里了,成为laravel 6.0新特性里的重要一环。当然了,如果你是之前的laravel版本,就直接用作者开发的那个组件就好了。

译制专场观看地址:www.pilishen.com/casts/larav…