huy-nguyen / laravel-optimize-init-db-connection
一个用于优化Laravel初始化数据库连接的包
v1.0.0
2024-02-15 16:07 UTC
Requires
- php: >=7.2
- illuminate/database: >=6.0
- illuminate/support: >=6.0
Requires (Dev)
- mockery/mockery: >=1.3.6
- phpunit/phpunit: >=8.5
This package is auto-updated.
Last update: 2024-09-29 02:13:35 UTC
README
如PR 50044所述,此包是为了较低版本的Laravel实现的(PHP >= 7.2,Laravel >= 6)
"当前代码多次往返以设置我们需要的所有变量,这既因为要运行多个命令,也因为使用了prepare,其中许多使用prepare和execute会导致3次往返 - 一次准备,一次执行,一次关闭语句(在PHP中的语句垃圾回收)。MySQL SET命令支持以逗号分隔的方式设置多个值。重构以实现这一点,使我们只需向服务器运行一个SET语句。这在云环境中可以产生实际的影响,例如AWS Lambda与RDS数据库通信,我们需要跨越AZ进行通信,延迟低至个位数毫秒,而不是亚毫秒延迟。这也减少了数据库的负载(要执行的语句更少),因此大量Lambda的突发启动将减轻负担。"
安装
您可以通过composer安装此包
composer require huy-nguyen/laravel-optimize-init-db-connection
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="optimize-init-db-connection-config"
这是已发布配置文件的内容
return [ 'driver' => 'mysql', ];
用法
默认情况下,此包将更改您的“mysql”连接。您可以通过以下方式设置新的数据库连接
更改您的配置(php config/optimize-init-db-connection.php
)
return [ 'driver' => 'optimize-mysql', ];
将驱动连接更新为optimize-mysql
'mysql' => [ 'driver' => 'optimize-mysql', 'url' => env('DATABASE_URL'), 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'prefix_indexes' => true, 'strict' => false, 'engine' => null, 'options' => [] ],
测试
composer test
变更日志
有关最近更改的更多信息,请参阅CHANGELOG。
贡献
有关详细信息,请参阅CONTRIBUTING。
安全漏洞
有关如何报告安全漏洞的详细信息,请参阅我们的安全策略。
致谢
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。