sshilko / php-sql-mydb
简单而强大的PHP MySQL包装器
2.0.0
2024-01-03 00:07 UTC
Requires
- php: ^8.0 || ^8.1 || ^8.2
- composer-plugin-api: ^2
- ext-mysqli: *
- ext-mysqlnd: *
- ext-pcntl: *
- psr/log: ^1
Requires (Dev)
- ext-ast: *
- ext-posix: *
- composer/composer: ^2
- nikic/php-parser: ^4
- pdepend/pdepend: ^2.12
- phan/phan: ^5.4
- phpmd/phpmd: ^2.13
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^9.5
- psalm/phar: *
- slevomat/coding-standard: ^8.4
- squizlabs/php_codesniffer: ^3.8
This package is auto-updated.
Last update: 2024-09-22 23:23:06 UTC
README
MyDb - 组件
MySQL数据库的简单PHP客户端
安装
composer require sshilko/php-sql-mydb
兼容性
- PHP 8.0, 8.1, 8.2
- MySQL >=5.7.8, 8.0
- MariaDB不兼容(待办)
此客户端如何帮助您与MySQL服务器进行SQL通信
- 使MySQL表现得像“传统”的SQL数据库系统
TRADITIONAL
模式,这种模式简单描述为“给出错误而不是警告”
- 友好的事务
autocommit = 0
- 显式
commit
在优雅关闭时
- 显式超时
- 05秒
客户端
连接超时 - 89秒
服务器端
SELECT查询超时 - 90秒任何查询的
客户端
读取超时 - 7200秒非交互式连接
空闲超时
mysqlnd.net_read_timeout
- 在php-fpm中尊重客户端断开
function.ignore-user-abort.php
- 05秒
- 性能提升
- 增加
MYSQLI_OPT_NET_READ_BUFFER_SIZE
- 增加
MYSQLI_OPT_NET_CMD_BUFFER_SIZE
- 只读InnoDB 优化
- 只读连接的READ COMMITED会话事务隔离级别
- 异步命令执行
- 将mysql结果集移至PHP用户空间内存
MYSQLI_STORE_RESULT_COPY_DATA
- 使用来自PHP Mysql native driver的
fetch_all
- 增加
- UTF-8
utf8mb4
字符集UTC
时区
- 高质量错误处理
- PHP默认错误报告
E_ALL & ~E_WARNING & ~E_NOTICE
- MySQL默认错误报告
MYSQLI_REPORT_ALL ^ MYSQLI_REPORT_STRICT ^ MYSQLI_REPORT_INDEX
SIGTERM, SIGINT, SIGHUP
信号捕获- 连接重试
- PHP默认错误报告
- PHPUnit & 静态代码分析
- 单元测试,静态分析代码库
此库的最佳用例是什么
- 高性能,低延迟的数据密集型应用程序
- 无预定义语句要求
- 无第三方依赖
- 无运行时/编译时步骤
- 易于开始使用和/或集成到现有代码库
范围之外
此库不是打算成为框架,为了保持重点和最小化代码库,它不提供
请重用最适合您需求现有解决方案。
为什么存在此库
- MySQL数据库速度快,可靠且可扩展,PHP运行时也相同
- 重视开发者的时间,尽可能避免增加复杂性
- 使用真实世界的数据集和有机负载来衡量应用程序的性能
- 针对我的使用场景进行优化,关注瓶颈,记住没有银弹(即没有一种万能的解决方案)
- 不要过早优化——像CPU、内存这样的资源都很便宜
- 专注于构建架构,向他人学习并随着时间的推移不断改进
未来路线图
- MariaDB兼容层(MySQL和MariaDB之间的变量和初始化命令语法不同)
- MydbFactory负责初始化默认值
贡献
- 请阅读贡献文档
作者
谢尔盖·希尔科contact@sshilko.com