sshilko/php-sql-mydb

简单而强大的PHP MySQL包装器

2.0.0 2024-01-03 00:07 UTC

This package is auto-updated.

Last update: 2024-09-22 23:23:06 UTC


README

MyDb - 组件

Project status - active Latest Stable Version Total Downloads PHP Required Version MIT License Psalm Coverage Code size
PHPUnit coverage PHPUnit classes coverage PHPUnit lines coverage PHPUnit methods coverage
8.1 Phan build 8.1 Psalm build 8.1 PHPMd build 8.1 PHPStan build 8.1 PHPCodeSniffer build 8.1 PHPDocumentor build 8.1 Pdepend build 8.1 PHPUnit build 8.0 PHPUnit build 8.1 PHPUnit build 8.2 PHPUnit build GithubPages build

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数据库系统
  • 友好的事务
  • 显式超时
    • 05秒客户端连接超时
    • 89秒服务器端 SELECT查询超时
    • 90秒任何查询的客户端读取超时
    • 7200秒非交互式连接空闲超时
    • mysqlnd.net_read_timeout
    • 在php-fpm中尊重客户端断开function.ignore-user-abort.php
  • 性能提升
    • 增加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 driverfetch_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信号捕获
    • 连接重试
  • PHPUnit & 静态代码分析
    • 单元测试,静态分析代码库

此库的最佳用例是什么

  • 高性能,低延迟的数据密集型应用程序
  • 无预定义语句要求
  • 无第三方依赖
  • 无运行时/编译时步骤
  • 易于开始使用和/或集成到现有代码库

范围之外

此库不是打算成为框架,为了保持重点和最小化代码库,它不提供

请重用最适合您需求现有解决方案。

为什么存在此库

  • MySQL数据库速度快,可靠且可扩展,PHP运行时也相同
  • 重视开发者的时间,尽可能避免增加复杂性
  • 使用真实世界的数据集和有机负载来衡量应用程序的性能
  • 针对我的使用场景进行优化,关注瓶颈,记住没有银弹(即没有一种万能的解决方案)
  • 不要过早优化——像CPU、内存这样的资源都很便宜
  • 专注于构建架构,向他人学习并随着时间的推移不断改进

未来路线图

  • MariaDB兼容层(MySQL和MariaDB之间的变量和初始化命令语法不同)
  • MydbFactory负责初始化默认值

贡献

作者

谢尔盖·希尔科contact@sshilko.com