|
发表于 2024-7-25 11:02:29
|
显示全部楼层
广东省汕头市
本帖最后由 1425113841 于 2024-7-25 21:29 编辑
给你上手改进了一下.
2024年7月25日:
1. 池使用FIFO的数据结构进行存储
2. 当连接已断开时, 会丢弃掉连接, 重新创建新的Mysql连接
3. 只要获取句柄成功了, 无论后面语句是否执行成功, 都应该归还连接
4. 惰性连接, 规定线程池的大小在8, 但是实际没有并发访问时, 不会将8个连接一次性创建好, 而是需要的时候, 不够再创建. 如果你只是单线程在使用, 那么线程池不会为你创建多余的TCP连接. 这一点可以通过我给你的测试用例看到前面三条命令执行时, 监控日志只汇报创建了一次TCP连接.
5. 增加SQLValueString函数用于辅助where语句的参数转义, 当发现危险字符没有转义会自动转义
6. 执行查询语句时没必要传入表名,这增加了用户会去思考表名的意义,只是一个生成json的字段名而已,随便给个list就可以了。
2024年7月25日: 抽空再次优化了一下
1. 归还连接时校验连接句柄
2. 监控连接是否重新连接
3. 去除"执行SQL_Ret", 因为没必要, 在"执行SQL"上面改进就可以了, 参考测试例子使用指南, 这样做比较优雅
4. 修复队列锁逻辑不合理(严重!!!!) 我昨天写的fifo存在问题, 并发会有概率发生问题, 已经调整, 必须使用这一个版本, 不要使用昨天发的版本, 否则程序存在一定并发崩溃隐患.
5. 可选择是否输出监控日志
6. 监控数据库是否能被连接7. 修复关闭MYSQL连接失败
9. "取出句柄"函数无法成功创建连接时, 不应计数已创建连接.
NX线程池_MySql连接池.e
(69.46 KB, 下载次数: 104)
|
评分
-
参与人数 3 | 好评 +2 |
精币 +6 |
收起
理由
|
朱熠
| |
+ 1 |
感谢分享,很给力!~ |
陌路海岸
| + 1 |
+ 2 |
支持开源~!感谢分享 |
jcos
| + 1 |
+ 3 |
万分感谢!辛苦了!这下更稳定了,有大佬出手就是幸福哈!. |
查看全部评分
|