对于很多PHP开发者来说,连接数据库一直是个头疼的问题,所以今天Gitee就给大家介绍一款基于Swoole开发的MySQL数据库连接协议水池。项目名称:SMProxy项目作者:louislivi开源许可协议:MIT项目地址:https://gitee.com/louislivi/smproxy高并发,Mycat等数据库中间件有些SQL不能用,比如不支持批量添加,过于臃肿。所以我写了这个只支持连接池和读写分离的轻量级中间件。使用Swoole协程调度HandshakeV10协议转发,使程序更加稳定。它不需要像Mycat那样解析所有的SQL包,增加了复杂度。项目原理将数据库连接作为对象存储在内存中。当用户需要访问数据库时,第一次建立连接。不是建立新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用后,用户并没有关闭连接,而是将连接放回连接池中,以供下一次请求访问。连接的建立和断开由连接池自己管理。同时,还可以通过设置连接池的参数来控制连接池的初始连接数、连接数上下限、每个连接的最大使用次数、最大空闲时间等。连接池。还可以通过自身的管理机制监控数据库连接数、使用情况等。如果超过最大连接数,协程会被挂起,关闭一个连接后协程会继续运行。特性支持读写分离支持数据库连接池,有效解决PHP带来的数据库连接瓶颈支持SQL92标准采用协程调度支持多数据库连接,多数据库,多用户,灵活搭配遵守MySQL原生协议,跨语言,跨平台通用中间件代理支持MySQL事务支持HandshakeV10协议版本完美兼容MySQL5.5-8.0兼容各大框架,无缝提升性能性能测试介绍了这么多,那么本项目的性能如何呢?我们可以看看笔者进行的性能测试。PHP7.2.6withnoframework不使用连接池:使用连接池:ThinkPHP5.0不使用连接池:使用连接池:Laravel5.7不使用连接池:使用连接池:MySQL不使用连接池:使用连接池:当然,作者提供的测试结果仅供参考。开发者个人使用时,由于数据量、网络环境、数据库配置等方面存在差异,请以实际压力测试结果为准。如果你想知道SMProxy的具体操作和配置方法,那就点击下面的链接去项目主页看看吧,记得给个Star:https://gitee.com/louislivi/smproxy如果你正在寻找开源的PHP项目学习,Gitee上也有很多:https://gitee.com/explore/all?lang=PHP
