首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我是否应该关注与多个数据库的连接的性能?

我是否应该关注与多个数据库的连接的性能?
EN

Stack Overflow用户
提问于 2010-05-11 06:02:41
回答 3查看 148关注 0票数 5

我有一个PHP应用程序是运行在与MySQL数据库的Apache服务器上。根据用户访问的子域,我将他们连接到一个数据库(sub1.domain.com连接到database_sub1,sub2.domain.com连接到database_sub2)。现在有10个子域数据库组合,但这个数字可能会增长到100多个。

那么,这是一件坏事吗?

考虑到我的情况,mysql_pconnect是可行的吗?

谢谢,如果更多的信息会有帮助,请让我知道。

乔希

EN

回答 3

Stack Overflow用户

发布于 2010-05-13 23:05:32

这是你写的应用吗?

如果是这样的话,从维护的角度来看,这可能会变成一场噩梦。

当您更改程序并需要更改数据库时,会发生什么?

除非您有一个很好的迁移工具来帮助您将所有数据库更改为新模式,否则您可能会发现自己处于一个痛苦的世界。

我知道您现在参与这个项目可能太远了,但是如果在模式中添加一点额外的关系来区分域(公司/用户),您就可以在一个数据库上运行它们,而只需要很少的额外开销。

如果性能真的成了问题(Read this),您可以实现集群或其他优雅的解决方案,但至少不需要维护100+数据库。

票数 1
EN

Stack Overflow用户

发布于 2010-05-11 06:16:02

这在一定程度上取决于配置的其余部分,但只要每个事务只涉及一个连接,那么数据库客户端代码的性能就应该与您预期的一样-与单个数据库的性能大致相同,但有更多的可能性来提高数据库服务器的性能,直到网络带宽的限制。

如果多个连接参与了一个事务,那么您可能需要一个符合XA的事务管理器,这通常会带来很大的性能开销。

票数 0
EN

Stack Overflow用户

发布于 2010-05-13 07:00:24

不,这不是坏事。

这是一个总的并行连接数量的问题。这可以由mysql设置中的"max_connections“来定义(默认是151,从MySQL 5.1.15开始),并受到您的平台的能力(即Windows上的2048<,Linux上的更多),硬件(内存)和系统设置(主要是打开文件的限制)的限制。如果你有许多并行用户,那么这可能是一个瓶颈,数据库的数量并不重要。

我做了一个脚本,在一次执行中连接400+数据库(一个接一个,不是并行的),我发现mysql + php处理得很好(没有明显的内存泄漏,没有大的开销)。所以我假设你的配置不会有问题。

而且,在web开发中,如果连接数据库本身没有显著的开销,finnaly - mysql_pconnect通常不是很好的考虑。你必须非常小心地管理它,以避免与max_connections,锁,挂起的脚本等问题。cron作业每秒都在运行,或者类似的情况)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2806774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档