网站首页 > 博客文章 正文
来源于公众号阿飞的博客 ,
作者阿飞的博客
druid:阿里巴巴开源的为监控而生的数据库连接池。你看,官方都没有说是高性能数据库连接池,因为,在性能方面,HikariCP会说:我不是针对谁,论性能,在坐的各个数据库连接池都是渣渣。Github HikariCP的介绍:A solid, high-performance, JDBC connection pool at last。而且HikariCP还是springboot2.x以后默认的数据库连接池。
HikariCP性能参考--图片来自于HikariCP Github主页:
HikariCP benchmark
ConnectionCycle就是指DataSource.getConnection()、Connection.close()。而StatementCycle就是指Connection.prepareStatement()、Statement.execute()、Statement.close()。需要说明的是HikariCP Github没有给出和druid的对比,不过,也有网友对这两个中间件进行了压测比较,只对比性能的前提下,HikariCP还是要好不少的。
不过,即使druid的性能不是最好的,还是有很多项目组或者公司选择druid。因为,它的监控非常非常完善。我们项目组也不例外,用的是druid。
可能很多项目的很多中间件的配置,都不是非常合理,没有经过充分的压测。比如Redis相关,数据库相关,MQ相关等。笔者的这个使用druid的项目也不例外,笔者今天介绍4个你可能不怎么关注的参数:
- validationQuery
用来检测连接是否有效的sql,如果validationQuery为空,那么testOnBorrow、testOnReturn、testWhileIdle这三个参数都不会起作用,因为这三个参数都是通过执行参数validationQuery指定的SQL来验证数据库连接的有效性,配置参考:validationQuery=SELECT 1
- testWhileIdle
建议配置为true。对性能影响很小,因为是定期检查。如果连接空闲时间大于timeBetweenEvictionRunsMillis指定的毫秒,就会执行参数validationQuery指定的SQL来检测连接是否有效。
- testOnBorrow
建议配置为false。获取连接时执行validationQuery检测连接是否有效,这个配置会降低性能。
- testOnReturn
建议配置为false。归还连接时执行validationQuery检测连接是否有效,这个配置会降低性能。
如果这4个参数都是按照笔者建议进行配置,那么就不会有什么性能问题,但是。请看下面这张压测表格--testOnReturn和testOnBorrow不同值组合的情况下,5000次主键查询的耗时比较:
惊不惊喜,意不意外???
由这张压测结果表,我们可以得出如下结论:
- testOnReturn和testOnBorrow都为false时性能最好。
- 如果任意一个参数为true(另一个为false),会导致性能下降5倍多。
- testOnReturn和testOnBorrow对性能的影响几乎一样(因为它们都会通过执行参数validationQuery指定的SQL来校验连接的有效性)。
事实上,这两个参数在druid中默认值就是false。所以,赶紧去检查你们的配置,是不是和笔者一样,多此一举的将它们配置为true。
猜你喜欢
- 2024-10-17 SpringBoot+Vue3+MySQL集群 开发健康体检双系统(完结)
- 2024-10-17 再有人问你数据库连接池的原理,这篇文章甩给他!
- 2024-10-17 详解Spring Boot并发处理能力:理论与参数设置实践
- 2024-10-17 数据库连接池有什么用?springboot中如何使用?
- 2024-10-17 谈谈高并发系统的一些解决方案(高并发系统设计的三大目标)
- 2024-10-17 微服务事务管理艺术:Spring Boot 集成 Seata 深度指南
- 2024-10-17 阿里巴巴开源数据库jdbc连接池 Druid 1.1.18 发布
- 2024-10-17 【架构之路】提升后端接口性能的实战技巧
- 2024-10-17 「解密」有人要将“高并发”拉下“神坛”!
- 2024-10-17 MySQL连接优化是数据库性能调优的重要一环
你 发表评论:
欢迎- 最近发表
-
- 给3D Slicer添加Python第三方插件库
- Python自动化——pytest常用插件详解
- Pycharm下安装MicroPython Tools插件(ESP32开发板)
- IntelliJ IDEA 2025.1.3 发布(idea 2020)
- IDEA+Continue插件+DeepSeek:开发者效率飙升的「三体组合」!
- Cursor:提升Python开发效率的必备IDE及插件安装指南
- 日本旅行时想借厕所、买香烟怎么办?便利商店里能解决大问题!
- 11天!日本史上最长黄金周来了!旅游万金句总结!
- 北川景子&DAIGO缘定1.11 召开记者会宣布结婚
- PIKO‘PPAP’ 洗脑歌登上美国告示牌
- 标签列表
-
- ifneq (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)