首页 > 为什么对于数据库的操作是基于连接的?

为什么对于数据库的操作是基于连接的?

我们在使用数据库的时候总是需要先建立连接,为什么使用的是连接而不是其他的


应用和数据库之间需要进行通信。
如果数据库和应用不在同一台机器上,那么就需要通过socket来进行通信。
如果数据和应用在同一台机器上,那么依然可以通过socket进行通信,但是一般socket是基于TCP/IP(同一台机器上,应用就是连接127.0.0.1上的某个端口)的,在*nix上还有一种使用 Unix 文件描述符的socket。
当然,我们这里说的数据库都是提供socket监听来和客户端进行连接的(如mysql、oracle、sqlserver等),还有一个种小型数据,直接就是文件形式的(如sqlite,ms access等),这时候做数据库操作,只需要打开本地的一个数据库文件就行了。
当然编程语言中全局变量是不是也可以认为是一种数据库呢,当然这种数据不能持久化,重启后就丢失了(如java中的hashmap)。


从实际项目使用来说,有几个方面的考量:
1.将数据库的操作粒度细化,每次请求占用一个连接,每次请求的时间尽量短,可提高并发数响应。
2.多个请求并发只受限于连接数,数据库的连接池大小可配置,一般交给应用服务器配置。
3.一个连接这次会话处理完了,可以接着处理下一个,每个连接里可进行事务操作,相互不影响。


实际的项目中数据库和代码并不是跑在同一台主机上,为了能够访问到只能用连接连过去。


想不出不建立连接怎么通信

【热门文章】
【热门文章】