MySQL服务器在用户之间拆分扩展数据库/表

标签 mysql scalability

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

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

谢谢

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

最佳答案

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

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

如果您能更详细地说明您想要实现的目标以及原因,肯定会有很多答案。

关于MySQL服务器在用户之间拆分扩展数据库/表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50380884/

相关文章:

mysql 替换表中的值

java - 通信链路故障 发送到服务器的最后一个数据包是 1 毫秒前。

MYSQL 更新嵌套子查询

node.js - 使用 node.js 的 100-200k 并发用户的 Web 表单

database-design - 如果有的话,图形数据库如何水平扩展?

javascript - WebRTC - 可扩展的实时流广播/多播

mysql - 显示表和 MYSQL_NUM_ROWS

MySQL正则表达式更新查询

hibernate - 扩展EhCache

apache-spark - Apache Spark 在本地模式下性能下降