1.完全独立的数据库
为每一个租户单独部署一个数据库
优点:达到了真正的按租户进行隔离,不同租户之间相互没有影响,可以针对一些特殊租户例如大客户做一些定制化的开发,计费相对简单,按照资源使用进行计费。
缺点:成本高,版本更新迭代的维护成本高,统计,管理租户比较困难,共享数据有多份,有资源浪费。
2.同一个数据库不同schema
优点:成本相对较低,统计,管理租户相对比较容易。
缺点:不同租户之间可能会相互影响,例如某些大客户数据量特别大,因为是同一个数据库,那么其他数据量小的也会收到影响。计费相对来说比较困难,较难统计资源使用率。而且往往需要维护根据租户id进行路由,需要维护元数据的信息。
3.同一个数据库同一张表,按照租户id来进行区分
优点:开发简单,资源相对来说占用最少,便于升级维护管理,统计管理租户比较简单。
缺点:不同租户之间容易相互影响,相当于没有隔离可言。针对一些大客户的定制化开发,比较困难,而且由于所有租户的数据放到了一起,容易导致表的数据量过大,往往需要分库分表来进行解决。