MySQL可以处理多少个数据库?

时间:2010-06-21 20:28:36

标签: mysql database hardware load

我的MySql服务器目前有235个数据库。我应该担心吗? 它们都与MyISAM表具有相同的结构。

硬件是一台虚拟机,在四核AMD Opteron 2.2GHz上运行2 GB RAM。

最近,cPanel给我发了一封电子邮件,说明MySql已经失败,并且已经重新启动。

预计会创建新的数据库,我想知道是否应该添加更多内存,或者我是否应该添加另一个虚拟机。

4 个答案:

答案 0 :(得分:7)

mysql中的“数据库”实际上是目录,无论是将所有表都放在一个或每个表中,对它的限制都没有影响。

主要问题是表缓存。如果不进行调整,您将拥有默认的表缓存(通常= 64),这意味着每次打开表时都会关闭表。这非常糟糕。

除了在MyISAM中,情况更糟,因为关闭一个表会将其关键块从密钥缓存中抛出,这意味着后续的索引查找或扫描将从磁盘读取实际块,这是非常可怕和缓慢的,真的需要是避免。

我的建议是:

  • 如果可能,立即将表缓存增加到>表总数
  • 监控监控中的全局状态变量Opened_Tables;如果它迅速增加,这很糟糕。
  • 在非生产环境中对您的相同硬件执行性能和稳健性测试(如果您还没有这样做)。

答案 1 :(得分:1)

(重新发表评论以提高知名度) 谢谢大家的意见。该系统与Google Analytics类似。用户网站的访问记录在“主”表中。本机应用程序正在监视主表并处理已注册的访问并将其写入用户的数据库。每个用户都有自己的DB。这已经决定了分片。正在为每个用户运行各种报告和统计信息。如果它只运行在特定的DB(更少的数据)上它会更快我知道这不是最好的设置。但我们必须暂时处理它。

答案 2 :(得分:0)

我不相信有一个硬限制,唯一真正限制你的是你的硬件和这些数据库将获得的流量。

你似乎只有很少的记忆,这可能意味着你没有大量的连接......

您应首先分析每个数据库(或数据库集的使用情况,具体取决于它们的使用方式)。

我的建议 - MySQL(或任何数据库服务器)可以使用更多内存。你永远都不够。

答案 3 :(得分:0)

你做错了。

评论有关您的数据库的一些细节,我们可能会告诉您设计出错的地方。