【问题标题】:MySQL Server Split Scaling Databases/Tables among UsersMySQL 服务器在用户之间拆分扩展数据库/表
【发布时间】:2026-02-14 10:40:01
【问题描述】:

我对数据库比较陌生,并且一直在寻找一种解决方案,该解决方案将允许用户在我的服务器下访问他们自己的数据而不是其他人。我希望用户的这些数据库具有可扩展性,因此如果需要更多空间来存储文件,他们可以在很少干预的情况下这样做。

我正在研究 MySQL,因为我只使用它完成了单个数据库的工作,并试图看看这可能是如何完成的。最好的做法是为每个用户设置一个数据库吗?这样每个数据库的表都是独立的,受密码保护,并且不能在其他数据库的表之间交换数据?我知道除了表分片/分区之外,基本上可以有无限的数据库和表,所以我认为这是一个可靠的选择,但想知道是否有更多使用 MySQL 的人有任何意见。

谢谢

编辑:更新以澄清愿望。所以我本质上想要的是一个我是所有者的平台,但我可以让用户登录我的平台来访问他们的数据。这些数据可能主要包括文件,例如 PDF,但至于它们的大小,我无法确定,但我正在做最坏的打算。他们将能够使用网络/应用程序来查看他们的文件并下载、上传、排序、删除这些文件。因此,除了创建文件之外,还可以查看历史文件并在需要时下载这些文件。我的平台将提供的是这些文件的框架,如果可以的话,这些文件会自动填充字段,以及用于文件管理的 UI。我的担忧来自于拥有多个用户的架构,这些用户拥有不同的数据,要保持独立、可扩展,并且不会因读/写操作而使服务器完全崩溃。

【问题讨论】:

    标签: mysql scalability


    【解决方案1】:

    听起来您希望将用户“文件”作为 BLOB 存储在数据库中,这并不一定首先适合很好地扩展。根据文件的类型,通常最好的解决方案是在应用层提供安全性,并为您的文件使用基于云的存储。如果您需要额外的安全层(即用户只能访问分配给他们的文件),则有许多选项 - 例如,假设您使用 S3 将使用 IAM 配置文件,该配置文件可以在用户 a/c 已设置。这同样适用于任何使用 API 的第三方云存储。

    每个用户拥有一个单独的数据库将是一场管理噩梦,除非您可以在登录时生成每个数据库(这意味着无论如何都要为凭据单独数据存储,因此这将有些毫无意义)并且在 BLOB 存储方案中也不起作用.

    如果你能详细说明你想要达到的目标,以及为什么肯定会有很多答案。

    【讨论】:

    • 感谢您的回复。是的,我相信您是正确的,我计划将这些文件存储为 PDF 等,因此保留原始数据将很有用。我意识到这对扩展也很不利,为什么我对如何实现这一点感到很困惑。我也在关注 AWS,但我没想过在 IAM 配置文件中拆分 S3 存储桶,这实际上可以很好地处理受保护的数据方面。