【Github】项目名:SMProxy – 基于MySQL协议和Swoole的数据库连接池
一、项目简介
SMProxy是一个基于MySQL协议,由Swoole开发的MySQL数据库连接池。其原理是将数据库连接作为对象存储于内存中。用户首次访问数据库时建立连接,后续从连接池获取空闲连接,使用后放回而非关闭。连接的建立与断开由连接池管理,可设置连接池参数,如初始连接数、连接上下限数、连接最大使用次数和最大空闲时间等,还能监视连接数量和使用情况。超出最大连接数时协程挂起,等有连接关闭再恢复协程操作。
二、项目特性
1. 支持读写分离。
2. 有效解决PHP带来的数据库连接瓶颈,支持数据库连接池。
3. 支持SQL92标准,采用协程调度。
4. 支持多个数据库连接、多个数据库、多个用户灵活搭配。
5. 遵守MySQL原生协议,是跨语言、跨平台的通用中间件代理。
6. 支持MySQL事务,支持HandshakeV10协议版本,完美兼容MySQL5.5 – 8.0,兼容各大框架,无缝提升性能。
三、项目设计初衷
PHP没有连接池,高并发时数据库连接易打满。Mycat等数据库中间件存在部分SQL无法使用(如不支持批量添加)且过于臃肿的问题。因此开发了这个仅支持连接池和读写分离的轻量级中间件,使用Swoole协程调度和HandshakeV10协议转发,程序更加稳定,无需像Mycat一样解析所有SQL包体,降低了复杂度。
四、项目总结
SMProxy为解决PHP数据库连接问题提供了很好的方案,其特性和设计初衷使其在特定场景下具有独特优势。欢迎大家在评论区留言讨论这个项目,也期待大家的Issue和PullRequest。
项目地址
数据统计
数据评估
本站链氪巴士提供的SMProxy:基于MySQL协议和Swoole的数据库连接池都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由链氪巴士实际控制,在2024年12月6日 上午12:00收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,链氪巴士不承担任何责任。