微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用嵌入式数据库的JDBC连接池有什么好处?

使用HikariCP等嵌入式数据库(如sqlite,H2或HsqlDB)有什么好处吗? (最后两个也可以在服务器模式下运行,但我对此不感兴趣)

除了性能优势(我认为嵌入式数据库可以忽略不计)之外,我还对连接池提供的其他工具感兴趣,这些工具可以使代码更简洁和/或更健壮.

我认为这个问题与this other one的不同之处在于它更具体,因为它专注于嵌入式数据库,并且在较小程度上关注HikariCP.

解决方法:

存在连接池主要是因为从头开始新连接是一项昂贵的操作.通常,它涉及TCP / IP握手,加密和协议协商和身份验证.关闭连接时也会有一些开销.

所以这最终归结为实现:是否打开一个足够慢的新连接以保证重用?如果打开连接的总时间与其他操作所消耗的时间相比较大,或者打开连接会产生严重延迟,则连接池是有意义的.对于嵌入式数据库,差异应该是最小的,因为它们在与程序本身相同的内存空间中运行.

但是,连接池也有一个有用的副作用,因为它限制了最大同时连接数.在没有连接池的服务器上,攻击者可以轻松发送大量请求,耗尽内存或导致拒绝服务.

代码清晰度和抽象的角度来看,连接池也很好,因为它们是完全透明的.如果您有一天决定从嵌入式服务器迁移到客户端/服务器,则无需进行任何更改.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐