Laravel v5.8.19 中大量插入性能改进
发布时间 作者 Paul Redmond
Laravel 团队发布了 Laravel 5.8.19,其中包含最新的框架新增功能、修复和显著的性能改进,这会影响使用 Eloquent 进行大量插入操作。
首先,对大量插入操作进行了性能改进,这可以提高对数千个项目的插入速度。底层更改是针对 Arr::flatten()
进行的,以避免使用 array_merge
- 你可以查看 拉取请求 #28614 以了解有关更改内容的更多详细信息。
接下来,在 Application 类中添加了 isProduction()
方法,用于查看环境是否与“production”值匹配。如果你正在使用 prod
或 prd
,则需要使用类似下面的代码:
app()->environment('prod')
接下来,添加了一个可选的 DYNAMODB_ENDPOINT
配置选项。新的环境变量使开发人员能够在本地开发和测试中使用本地版本的 DynamoDB。
最后,可以使用 url
配置选项解析 Redis 配置 URL - 该选项在定义时会覆盖其他配置值。
[ // Coming directly from Heroku documentation 'url' => 'redis://h:[email protected]:111', 'host' => '127.0.0.1', // ...]
现在,由于 Mathieu TUDISCO 的贡献,可以配置各种数据库的 URL。有关使用 url
键配置数据库的更多详细信息,请查看 数据库配置文档。
你可以在下面查看完整的修复列表,以及 5.8.18 和 5.8.19 之间的完整差异。Laravel 5.8 的完整发布说明可以在 GitHub 上的 5.8 更新日志 中找到。
v5.8.19
新增功能
- 添加了可选的
DYNAMODB_ENDPOINT
环境变量,用于配置 DynamoDB 的端点 (#28600) - 添加了
Illuminate\Foundation\Application::isProduction()
方法 (#28602) - 允许在
rescue()
中禁用异常报告 (#28617) - 允许在 Redis 配置中解析 Url (#28612, f4cfb32)
- 允许设置其他 (
sourceip
和localdomain
) smtp 配置选项 (#28631, 435c05b)
修复
- 修复了带有别名的 Eloquent UPDATE 查询 (#28607)
- 修复了
Illuminate\Cache\DynamoDbStore::forever()
(#28618) - 修复了
event:list
命令,当同时使用手动注册事件和事件自动发现时 (#28624)
性能改进
- 提高了
Arr::flatten()
的性能 (#28614)
更改
- 在
ImplicitRouteBinding
中的ModelNotFoundException
异常中添加了id
(#28588)