为什么数据库连接的创建开销大
程序员文章站
2022-06-09 20:05:00
...
为什么连接开销比较大? 开发人员经常认为建立一个数据库是一个简单的要求,不就是在数据库服务器和初始化用户之间的一个网络往返吗,但实际上,一个数据库连接在驱动和数据库服务器之间有多次网络往返,例如,当某个驱动连接到Oracle或Sybase时,这个连接会
为什么连接开销比较大?
开发人员经常认为建立一个数据库是一个简单的要求,不就是在数据库服务器和初始化用户之间的一个网络往返吗,但实际上,一个数据库连接在驱动和数据库服务器之间有多次网络往返,例如,当某个驱动连接到Oracle或Sybase时,这个连接会有7到10和网络往返,执行了一系列的动作:
◆校验用户的身份证书
◆在数据库驱动期望的代码页设置和数据库可用的代码页设置之间进行协商(如果必要的话)
◆获取数据库版本信息
◆确定用于通信的最理想的数据库协议包大小
◆设置会话设置
此外,数据库管理(开发人员承担数据库管理员职责时的最佳做法)系统要确定建立连接使用的资源,包括性能开销较大的磁盘I/O和内存分配,你可能会认为将应用程序部署到数据库服务器上会消除网络往返,在大多数情况下这并不现实,因为现实世界中大部分企业并不会这么干,它们有很多的应用程序,有很多的数据库,此外,数据库服务器都会为数据库系统进行精心的性能调整,一般不会为不同的应用程序进行调整,即使可以在一台机器上安装数据库和应用程序,但这样也会有单点故障的隐患。
摘自:http://database.51cto.com/art/200907/136845.htm
推荐阅读
-
为什么ASP.NET Core 数据库连接串的值和appsettings.json配的不一样?
-
为什么ASP.NET Core 数据库连接串的值和appsettings.json配的不一样?
-
python中连接三大主流数据库mysql,mongodb和redis的操作教程
-
Python-Web框架之 - 利用SQLALchemy创建与数据库MySQL的连接, 详解用Flask时会遇到的一些大坑 !
-
四、数据库创建以及信息录入的数据库连接
-
Docker学习总结(51)——为什么不建议把数据库部署在 Docker 容器内的7大原因?
-
FineReport9.0定义数据连接(创建与SQL Server 2016数据库的连接)
-
使用 Navicat 创建数据库并用JDBC连接的操作方法
-
nosql - redis的php客户端为什么连接数这么大
-
MSSQL 数据库不能手动创建新的连接_MySQL