支持一个TiDB有多个数据库,每个数据库有多个模式,每个模式有多个表和视图等

需求反馈
请清晰准备地描述问题场景、需求行为及背景信息,更有利于产品同学及时跟进需求
【需求涉及的问题场景】
MySQL只有两个级别来组织数据,即模式和表。如果创建多个数据库,必须设置“Many MySQL instance”。这对mysql来说容易,但对TiDB来说却不容易,需要多台机器。但是总是有很多应用程序需要使用多个模式(可能是每个模块使用一个模式或每个子系统使用一个模式)。因此,TiDB只能承载一个应用程序…,成本太高了。

【期望的需求行为】
那么,TiDB是否有可能在DBMS中添加一个逻辑层来支持单个TiDB实例中的多个数据库?因此,我们可以在单个tidb实例上部署许多应用程序(它们需要使用多个模式)。

【需求可替代方案】
或者只是根据不同的用户隔离数据库和模式。也就是说,每个用户都有自己的数据库。这样我们就可以将每个应用程序与不同的用户连接起来,从而获得隔离资源。

【背景信息】
许多其他的数据库,如Postgres, MSSQL, CockrouchDB,DB2,有Database > Schema > Table逻辑层来组织数据,而TiDB缺少Schema层。许多来自其他dbs的用户希望支持属于数据库的应用程序的特性,并为其模块和子系统提供多个模式。因此,它将为在TiDB中创建多个应用程序和从其他数据库迁移带来许多优势。

1 个赞

上面说的“使用多个模式” 具体是指?没太理解

To support a TiDB has multiple databases, and each database has multiple schemas, each schema has multiple tables and views, etc. · Issue #25192 · pingcap/tidb · GitHub

目前 TiDB 主要还是维持与 MySQL 的兼容性,支持 Schema 多模式还没有列入产品 Roadmap

直接k8s,才能解除你的忧愁 (采用 tidb - operator)

https://book.tidb.io/session2/chapter1/tidb-operator-intro.html
https://book.tidb.io/session2/chapter1/tidb-operator-deployment-private-operator.html#12323-在-kubernetes-上部署-tidb-operator