0

现在我遇到了一个 MySQL 应用程序的问题。实际上,我很担心几个月后我可能会遇到的问题。

场景如下:我正在开发一个有很多客户使用它的 Web 应用程序。它是一个应用程序,有一个独特的核心和几个适配(在同一个核心上运行),因此所有适配的数据库都是相同的。每个适配都有一个或多个客户端使用它。

所以,我的数据库有 200 多个表,有些表可能每个客户端每天有 500 多行。我担心当数据库变得太大时,选择可能真的很昂贵。

我正在考虑创建几个数据库(相同的模式),应用程序应该根据记录的客户端决定使用哪个数据库。但是我在更新模式时确实会遇到问题(我必须更新每个数据库)。我的应用程序可以选择数据库,这不是问题。

  • 你认为如果MySQL有很多数据,它真的可以停止吗?
  • 有没有办法轻松更新几个相同的模式数据库?
  • 主/从方法解决了我的问题?

我认为重要的是要知道在所有表中我都有一个列,它告诉我该行属于哪个客户端,并始终在所有选择查询中将其用作 WHERE 子句。

所以我需要帮助的是决定做什么。你能帮我解决这些问题吗?您还有其他更智能的解决方案吗?

我不知道这是否重要,但我正在使用 PHP。

谢谢你们!

4

2 回答 2

1

每天 500 行就可以了,这不是高负载。

数据库/或数据库中的多个客户端称为“多租户系统”。在同一个数据库中保留多个租约有点棘手,但可行。

您需要为您的表定义索引,这些索引应该主要包括客户端 ID 以及任何其他列。

您可能还希望对客户端 ID 进行非规范化并使其作为所有主要表中的列可用.. 这样您就可以将其放入索引中。

MySQL 过去并不具备完美的可靠性。这些天更好,我不建议您更改/另一个数据库,特别是当您使用 PHP 时,但请确保您定期运行自动备份(比如每晚)。

于 2013-09-28T01:04:18.927 回答
1
  1. Stop is a big word, but it can become slow. From what I read here though, you won't have a "lot" of data. It's more about size in memory so you should focus on that more than the amount of rows. Just take care of your indexes.

  2. There are systems to manage this, but it depends how/where you get your database structure. I assume you change your schemas with an SQL query however, it shouldn't be too hard to automatically execute that query on all database right? If they will be different machines than Fabric could help.

  3. If it's about too much reads, yes, it will solve your problem.

Note

From what I've read so far you don't have that much data, nothing that MySQL can't handle for the years to come.

于 2013-09-27T23:43:51.673 回答