gpt4 book ai didi

mysql - 构建可扩展数据库的最佳方式

转载 作者:搜寻专家 更新时间:2023-10-30 22:03:07 24 4
gpt4 key购买 nike

我正在从事一个可能拥有大量用户的项目,每个用户都将管理自己独特的数据集。我认为数据可以以两种方式之一存储。

1) 为每个用户创建一个完全不同的数据库,使他们的数据与其他人的数据完全分开

2) 在同一数据库中共享数据,并使用 user_id 字段在查询级别将其隔离。

每个用户的架构将始终相同。

主要是系统需要能够扩展,我不确定是否有可能有数千个不同的数据库,或者在同一个表中存储数百万条记录是否会更好。

我很想听听过去处理过这种情况的任何人的意见,以及这两种选择可能存在的陷阱。

最佳答案

除了您已经确定的扩展方面之外,还有一些其他问题可能会促使您做出决定 - “大量用户”也可能意味着您最好澄清的数字范围。

其他操作问题:

  • 安全性 - 依赖代码中的 user_id 字段,即没有允许用户查看/操纵其他用户数据的错误或缺陷。

  • 升级 - 双向,但您要么一次升级所有人(单个数据库),要么通过拆分 - 允许自己在不同时间升级不同的用户组。

  • 备份/恢复 - 根据恢复要求和 SLA,您可能会发现让每个人都在一个数据库中会在备份/恢复方面造成太多问题。如果单个客户想要恢复他们的数据,那么当它与所有其他客户的数据结合时的操作开销就不是微不足道的了。同样,拥有大量数据库 = 大量单独备份。

  • 可扩展性 - 能够将不同用户的数据库放置在单独的服务器上有助于扩展,而不是需要大型铁数据库服务器。但同样,这是一项管理开销。

应用程序及其数据源的 Multi-Tenancy 不是一个简单的问题/答案 - 在这种情况下更多地了解有多少用户是“大”,结合操作问题可以为您提供指导。

关于mysql - 构建可扩展数据库的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7881340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com