我知道这是非常基本的。但是想明确一些mysql连接的概念。我有以下情况。
- 数据库服务器和 Web 服务器位于不同的位置。
- Web 服务器正在运行基于文章的网站。
- 文章数据存储在数据库服务器中。
- Web 服务器每秒传送 100 篇文章/页。
我的问题如下:
- Web服务器和数据库服务器之间的单一连接可以处理吗?
- 默认情况下会创建多少个连接?
- 如果我假设连接是管道,那么每个连接的 i/o 容量是多少?
- 数据库服务器的内存、处理器、操作系统和连接数之间有什么关系吗?
提前致谢
我知道这是非常基本的。但是想明确一些mysql连接的概念。我有以下情况。
我的问题如下:
提前致谢
web服务器和db服务器之间的单一连接可以处理吗?
单个连接可以传递多个请求,但不能同时传递,并且只针对单个客户端进程。因此,最好的扩展方法可能是每个 Web 服务器进程一个连接池,其中线程可以获得已建立的连接来执行它们的请求,并在完成后将连接返回到池中。
默认情况下会创建多少个连接?
取决于客户端语言、MySQL 连接器实现、您使用的框架、Web 服务器配置,可能还有很多其他类似的细节。所以最好的办法是简单地查看 MySQL 服务的网络连接列表,例如使用lsof
or netstat
。
如果我假设连接是管道,那么每个连接的 i/o 容量是多少?
限制因素可能是共享资源,例如两端的网络带宽或处理能力。所以连接的数量不应该对数据传输率有很大的影响。但是,建立连接的开销很大,这就是为什么我建议使用池来减少连接数量的原因。
数据库服务器的内存、处理器、操作系统和连接数之间有什么关系吗?
可能是,如果某些应用程序根据这些参数做出选择,但总的来说,我认为这不太可能。