2012-07-17 71 views
0

我看遍了整个网络,我找到了不同的答案,但有几个具体问题。MySQL数据库连接和大小

我有一个拥有约5400名活跃成员的网站,这种网站拥有Facebook的感觉。我有10个MySQL数据库,一个数据库包含一个“用户”表和一个“User_stats”表。下一个数据库包含博客,状态更新等的“照片”和“照片评论”等内容。每个数据库都有大约4-5个表格。我认为最大的桌子有大约25万行。

几年前,我把它们分成了不同的数据库,因为我在共享主机上达到了极限。我现在有一个虚拟服务器,所以我没有这些限制。

我想知道,因为我的代码加载在页面上,打开一个MySQL连接,关闭它,打开一个到另一个数据库,关闭它,等等,或者如果我把所有的表放到一个数据库我会在页面开始时打开连接,并在底部关闭它。

由于拉起照片,最近的博客条目,用户数据等,载入个人档案页面可能连接到页面末尾的所有10个数据库。

我很担心扩大规模,并认为如果我把它们全部放在1个数据库中,那么它会比打开和关闭这么多的连接少征税。

你的想法是什么?

+0

我想说,这取决于你的数据库客户端架构。有些语言支持共享,有些则不支持。 – 2012-07-17 18:04:07

+0

我只是使用PHP和MySQL的网站。我试图弄清楚有多个数据库的问题。我认为如此频繁地打开和关闭表格会更糟糕,而不是1个连接 – dbye 2012-07-17 18:12:54

回答

0

只要所有数据库托管在相同的MySql实例中,一个客户端连接就可以查询任何/所有数据库。

例子:

/*Query #1*/ 
SELECT FirstName, LastName 
FROM userdb.users 
WHERE UserID = ? 

/*Query #2*/ 
SELECT PhotoName, Height, Width 
FROM photodb.photos 
WHERE PhotoID = ? 

关闭并重新打开连接,每个数据库是不是要走的路。

+0

因此,如果我将所有表格放在一个数据库中,并保持打开该页面的MySQL连接并关闭它在页面末尾,可能是最好的方式?整个网站只有大约40张桌子。 – dbye 2012-07-17 18:09:04

+0

@DerekB并不需要将所有表移动到单个数据库。单一连接是一条可行的路线。根据客户端语言,您可能想要使用连接池(如果可用)。 – 2012-07-17 18:11:37

+0

我只使用PHP,所以我在网上发现了一些关于使用PEAR的文章,但我根本不知道PEAR。你碰巧有任何链接可以指引我正确的方向吗?所以基本上,我一次连接到所有10个数据库,但是我可以为每个查询选择连接吗? – dbye 2012-07-17 18:27:43