Mysql数据库SaaS多租户实现方案

一、前言


 在上一篇文章中描述了数据库的多租户实现方案主要有3种:
1、独立数据库模式
2、共享数据库独立schema模式
3、共享schema模式
那么我们选择哪一种呢?从业界来讲,使用第三种共享schema方式的比较多,这种实现方式我们以前也用过,一般来讲如果数据量不是很大,你的用户也不介意自己的数据跟其他用户的数据都存在一个表里,可以采用这种方式,但是如果数据量很大,后期就涉及到分库分表的问题,反而不如第二种方式一开始就分库来得方便,我们当前的项目选择的就是第二种方式,除了上面说的原因,还有一个重要的原因是我们现在的项目是在一个已有的产品上做SaaS化改造,如果采用第三种方式,就需要对现有的数据库表结构和sql进行大量的改造,工作量很大,所以最后综合考虑选择了第二种方式。其实第二种方式和第一种方式的实现方案基本上是一样的,只是第一种方式的使用的资源要比第二种资源要多。

 
二、实现方案


采用第二种方式实现的技术方案也有很多,比如通过mycat之类的中间件来实现多数据源、通过mybatis插件的方式来实现多数据源,我们采用的是Spring的AbstractRoutingDataSource来实现MySQL多数据源的切换,这种方式的优点是spring框架自带,实现简单,而且自定义化程度高。
我们看

你可能感兴趣的:(SaaS多租户专栏,saas,mysql)