mycat是数据库中间件,基于cobar(阿里用的)进行二次开发,cobar目前已停止维护,mycat功能更强大,开源社区在维护
和nginx类似进行负载均衡,mycat内部会划分主从进行解决读写一致问题
1.读写分离
2.数据分库
a.数据库表太多,进行分库,哪些表存哪个数据库,这是垂直拆分,和微服务业务模块拆分一样
b.表太大,超过千万数据量(这个数据量有待商榷)mysql性能不好,可以进行分表,这是水平拆分。
备注:分库分表是在其他机器上搭建mysql服务吗?
这要看性能瓶颈是软件带来的还是硬件带来的。假如查询速度慢,查看服务器的cpu和io性能,服务器性能才达到40%,这就是软件瓶颈,可以在此服务器上再搭建一个mysql。如果服务器性能经常接近满负荷,这就有可能是硬件瓶颈了,起码这台机器上不能搭建了。
3.可以多数据源整合
mycat原理中最重要的一个动作就是拦截,它拦截了用户发送过来的SQL,首先对SQL语句做一些特定的分析,如分片分析、路由分析、读写分析、缓存分析等。然后将SQL发往后端的真实数据库,并将结果做适当的处理,最终返回给用户。
学习mycat实战应用笔记:https://b23.tv/V3zlAs