为什么数据库和数据库连接池不采用类似java nio的IO多路复用技术使用一个连接来维护和数据库的数据交换?

发布于 2021-11-27 02:09:06 字数 137 浏览 916 评论 11

类似java的nio相比于传统阻塞io模型来说,有效率高(特别在高并发情况下)和资源耗费相对较少的优点。传统的阻塞IO为了提高效率,需要创建一定数量的连接形成连接池,而nio仅需要一个连接即可(大部分情况下一个连接即可)。那么请问,数据库和数据库连接池为什么不采用这种方式?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

网名女生简单气质 2021-11-30 14:57:50

应该是事务的缘故

陌上芳菲 2021-11-30 14:57:50

java nio是单一长连接 多socket复用,适合高并发、 服务端快速响应、传输数据量小的情况,而DB服务器的响应速度、传输数据量跟sql任务有很大关系,所以不适合。不过DB可以考虑加个开关,用户可以根据自己应用情况进行配置。
 

只为守护你 2021-11-30 14:57:49

单个会话处理能力有限

爱的那么颓废 2021-11-30 14:57:48

连接本身是一个tcp的长连接。数据库一开始设计的时候就是要求多tcp连接的方式的。

数据库连接池是这个样子,是因为数据库是这个样子的。

如果改变这套机制,要重做数据库那部分。

 

浮生未歇 2021-11-30 14:57:44

JDBC是同步的吧?

时光清浅 2021-11-30 14:57:42

连接池与数据库之间还有个JDBC驱动

想挽留 2021-11-30 14:57:37

helloworld类 是指 耗时比较少的吗?我昨天看dubbo ,文档里说 单个长链接 所以比较奇怪 为什么数据库要采用连接池的形式

鹤舞 2021-11-30 14:54:45

回复
helloworld类不占用多少资源,主要指cpu 链接池可以根据负载平滑伸缩,不浪费资源 另外稳定性更好, 单个进程其中有一段代码出岔子,后面的全遭殃,可以参考nodejs

躲猫猫 2021-11-30 14:40:38

回复
单个长连接不就是标准的tcp协议啊。

琴流音 2021-11-29 04:10:27

回复
准确,以及精确

爱你是孤单的心事 2021-11-28 14:38:39

nio只对io密集的helloworld类应用有优势,但对cpu密集的交并差集,搜索,排序并没有优势,只是增加了不稳定性

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文