李路林
首先介绍下分库,分表:
分表:
当数据量大到一定程度的时候,都会导致处理性能的不足,这个时候就没有办法了,只能进行分表处理。也就是把数据库当中数据根据按照分库原则分到多个数据表当中,这样,就可以把大表变成多个小表,不同的分表中数据不重复,从而提高处理效率。
分片:
对业务透明,在物理实现上分成多个服务器,不同的分片在不同服务器上
个人感觉跟分库没啥区别,只是叫法不一样而已,值得一提的是关系型数据库和nosql数据库分片的概念以及处理方式是一样的吗?
分库:
当业务系统的数据容量接近或超过单台服务器的容量、QPS/TPS接近或超过单个数据库实例的处理极限等。
此时,往往是采用垂直和水平结合的数据拆分方法,把数据服务和数据存储分布到多台数据库服务器上。
MyCAT:
社区爱好者在阿里cobar基础上进行二次开发,解决了cobar当时存 在的一些问题,并且加入了许多新的功能在其中。目前MyCAT社区活 跃度很高,目前已经有一些公司在使用MyCAT。总体来说支持度比 较高,也会一直维护下去。。
- 有效管理数据源连接,基于数据分库,而不是分表的模式。
- 基于 NIO 实现,有效管理线程,高并发问题。
- 支持数据的多片自动路由与聚合,支持 sum , count , max 等常用的聚合函数。
- 支持通过全局表,ER 关系的分片策略,实现了高效的多表 join 查询。
- 支持多租户方案。
- 支持分布式事务(弱xa)
- 支持全局序列号,解决分布式下的主键生成问题。
- 分片规则丰富,插件化开发,易于扩展。
- 强大的 web,命令行监控。
所以MyCat是目前最好的!!!!
我的内容我做主
你的业务真的到这个地步,你不会不知道的!作为爱好和研究的话,有好多!cobra,mycat都是阿里系的,还有很多MySQLproxy、Atlas、tddl等等,主要还是要看你的业务