当前位置: 首页 > 面试题库 >

如何设计多租户MySQL数据库

洪胜涝
2023-03-14
问题内容

让我们说我需要设计一个数据库,该数据库将托管多个公司的数据。现在出于安全和管理目的,我需要确保正确隔离了不同公司的数据,但我也不想启动10个mysql进程来在10个不同的服务器上托管10个公司的数据。使用mysql数据库执行此操作的最佳方法是什么。


问题答案:

多租户数据库有几种方法。为了进行讨论,它们通常分为三类。

  • 每个租户一个数据库。
  • 共享数据库,每个租户一个模式。
  • 共享数据库,共享架构。租户标识符(租户密钥)将每一行与正确的租户相关联。

MSDN对好文章的优点和每一个设计的利弊,以及实施方案的实例。

微软显然已经删除了我提到的页面,但是这些页面都在archive.org上。链接已更改为指向此处。

供参考,这是第二篇文章的原始链接



 类似资料:
  • 我们正在开发一个多租户应用程序。在体系结构方面,我们为业务逻辑设计了共享中间层,为数据持久性设计了每个租户一个数据库。也就是说,业务层将与每个租户的数据库服务器建立一组连接(连接池)。这意味着应用程序为每个租户维护单独的连接池。如果我们预计约有5000个租户,那么这个解决方案需要高资源利用率(每个租户的应用服务器和数据库服务器之间的连接),这会导致性能问题。 我们已经通过保持公共连接池解决了这个问

  • 目前,我正面临一个技术决策,我个人无法找到解决方案。 我目前正在开发一个多租户数据库。 结构如下: 有一个核心数据库,用于保存特定租户的数据和关系 有多个租户数据库实例(通过核心数据库中的查询,可以确定我应该连接到哪个租户id) 每个租户都位于一个单独的数据库实例(位于单独的服务器上) 每个租户都有特定的数据,其他租户都不应访问这些数据 每个数据库最好是mySQL(但如果有更好的选择,我愿意接受建

  • 我认为为每个租户创建一个Redis实例是一个很好的解决方案。 我有一个包含租户id和Redisendpoint的映射,这是专用于这个租户的。 地图数据如下所示:

  • 是否可以将Spring Boot配置为使用MultiTenantConnectionProvider,以便我的系统的每个客户端都连接到自己的私有数据库? 具体来说,我希望使用内置的hibernate支持多租户: http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html_single/#d5e4561 这是我想要的配置的一个例子,但我不知

  • 我想让我的web应用程序使用mongodb和spring data multitenat。 基本上,我希望将所有实体(集合)复制到不同的数据库中。然后(基于一些规则,例如登录系统的用户),我想将一些实体实例(文档)存储到正确的数据库中。 例如,我有一个名为DBNameProviderService的服务。动态返回数据库名称的getDbName()。如何使用此服务动态选择正确的数据库? 编辑 抱歉,

  • 问题内容: 我正在尝试使用此网络研讨会中概述的单独的架构方法向Java应用程序添加多租户 我想知道如何通过spring来配置多个数据源,也许是通过使用属性文件并基于租户id从spring上下文中获取数据源。 更重要的是,尽管我希望能够配置支持此多租户功能的自定义连接提供程序实现,以供Hibernate使用,而不是默认使用的注入功能。 我怎样才能做到这一点。 问题答案: 使用。