数据库设计:如何使用mysql有效管理约4000个数据库

数据库设计:如何使用mysql有效管理约4000个数据库,mysql,database,database-design,database-schema,Mysql,Database,Database Design,Database Schema,这听起来很疯狂,但我开始了一个数据密集型项目[收集在线商店库存],后来这个项目变得非常庞大。我目前有大约2000个用户,每个用户大约有100个表。所以本质上,我创建了这个系统,这样每个用户都有自己的mysql数据库,并将其托管在专用服务器上。问题是,服务器变得非常慢,并且由于压力和连接而中断。有没有工具可以用来优化数据库?或者我应该只重新设计一个数据库,这意味着重新设计整个系统?我需要一个建议和帮助4000个数据库用于one系统?!沃泽,你发明了谷歌吗 我肯定地说,你需要重新设计这个设置——当然

这听起来很疯狂,但我开始了一个数据密集型项目[收集在线商店库存],后来这个项目变得非常庞大。我目前有大约2000个用户,每个用户大约有100个表。所以本质上,我创建了这个系统,这样每个用户都有自己的mysql数据库,并将其托管在专用服务器上。问题是,服务器变得非常慢,并且由于压力和连接而中断。有没有工具可以用来优化数据库?或者我应该只重新设计一个数据库,这意味着重新设计整个系统?我需要一个建议和帮助

4000个数据库用于one系统?!沃泽,你发明了谷歌吗

我肯定地说,你需要重新设计这个设置——当然,除非你的“系统”实际上是数据库托管,而且每个用户都为一个私有数据库付费

拥有多个离散数据库没有错,但每个用户2个数据库是错误的方法

“正确”的方法将完全取决于您的系统打算做什么


您提到每个人都有一个专用服务器-这应该可以防止其他用户的争用问题。你确定它不是共享主机吗?

十有八九,当有人以这种方式构造应用程序数据库时(将相同的数据分割到不同的数据库,甚至分割到不同的表中),这是一个错误,因为不必要地尝试预优化系统

但如果没有更多信息,我们无法判断:

  • 这是九次错误中的一次,或者是第十次,当它是一个合适的设计时

  • 连接数是导致性能问题的原因(可以通过切换到单个数据库来解决)还是其他原因


  • 查看每台服务器的连接设置。它应该能处理2000个用户。2000名用户同时使用它吗?我们也不能在不知道你想做什么的情况下给你任何有意义的建议:)@Peter Minchev:那怎么办?在mysql服务器上我在哪里可以看到它?它是因为连接而中断的,还是因为您的查询永远运行,因为您有200000个表?相对于通常的应用程序需要的数据库数量,4000个数据库显然太多了3999个。我会选择“重新设计”,因为它迟早会失去控制。同时,您可以尝试优化查询,看看是否可以节省宝贵的CPU周期。这是关于为用户收集distinc数据并存储它们。收集的数据量很大。我可以重新设计数据库,大约15个。这意味着,对于我的4000名用户,他们将连接/重新连接到15个数据库。这样就可以建立4000*15个连接,如果它们都已登录的话。而如果我维持4000个数据库,它将是4000*1个连接。从某种意义上讲,我有一台专用服务器[2GB RAM]。在这台服务器上,我有这些数据库。@karto:好的,有个问题-在一台内存为2GB的服务器上,无论设计如何,4000个数据库都会很慢。我的笔记本电脑内存为2GB,很难运行SQL Server的开发实例。谢谢widor:我是否要将RAM增加到16GB左右?当我尝试重新设计时?RAM很便宜,它肯定会帮助解决连接/争用问题,但这里真正的问题是数据库的设计-您可能仍然需要很多,或者您可以将设置重构为一个或两个。增加内存只是一个临时解决方案。我可以将数据库重新设计为15个左右。这意味着,对于我的4000名用户,他们将连接/重新连接到15个数据库。这样就可以建立4000*15个连接,如果它们都已登录的话。而如果我维持4000个数据库,它将是4000*1个连接。我说的有道理吗??