Mycat–理论–08–Mycat常见案例类型
1、MySQL读写分离方案
1.1、InnoDB VS MyISAM
InnoDB
InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意:当count(*)语句包含 where条件时,两种表的操作是一样的。Innodb 支持事务处理与外键和行级锁,而MyISAM不支持
MyISAM的优势
读性能比Innodb强不少MyISAM的索引和数据是分开的,并且索引是有压缩的,内存使用率就对应提高了不少。能加载更多索引,而Innodb是索引和数据是紧密捆绑的,没有使用压缩从而会造成Innodb比MyISAM体积庞大不小。总结
索引省内存更快读性
2、不同的表用不同的引擎
3、多租户方案
单租户就是传统的给每个租户独立部署一套web + db 。由于租户越来越多,整个web部分的机器和运维成本都非常高,因此需要改进到所有租户共享一套web的模式(db部分暂不改变)。也就是saas系统。
3.1、案例
sql ;
在用户登录时,在线程变量(ThreadLocal)中记录租户的id修改jdbc的实现:在提交sql时,从ThreadLocal中获取租户id,通过租户id获取分片节点test_01,将test_01添加到sql注释注释中。
sql ;
4、分表大数据