huy-nguyen/laravel-optimize-init-db-connection

一个用于优化Laravel初始化数据库连接的包

v1.0.0 2024-02-15 16:07 UTC

This package is auto-updated.

Last update: 2024-09-29 02:13:35 UTC


README

Latest Version on Packagist GitHub Tests Action Status Total Downloads

如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)。有关更多信息,请参阅许可文件