我有一些关于数据库客户端和数据库如何交互的基本问题
- 数据库是否支持在来自客户端的单个数据库连接上同时进行多个事务?如果没有,为什么不呢?(因为多路复用可以节省每个连接的资源开销,当需要同时执行数千个并发查询时,连接池是争用的来源,这肯定可以避免多路复用)
- 数据库客户端级别连接与物理原始 TCP 连接之间的关系是什么。是多对一[多路复用](或)一对一?如果不是多路复用,为什么不呢?
- 如果多路复用,数据库服务器是否从其末端(或)多个逻辑连接维护单个逻辑连接
PS:我知道其中一些细节会因数据库而异,但我想大致了解 Postgres、Mysql、Oracle、SQL server 和 DB2 等流行的实现是如何实现这些的