概述:

    Mycat 最主要的一个环节“拦截”用户发送过来的sql语句,首先对sql语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后讲此sql发往后端的真实数据库。
如图:

mycat原理

最终用户拿到查询的结果,是从DN1上拿取。
mycat应用场景:
单纯的读写分离,此时配置最为简单,支持读写分离、主从切换
分表分库,对于超过1000万发表进行分片,最大支持1000亿的单表分片
多租户应用,每个应用一个库,但应用程序只链接Mycat,从而不改造程序本身,实现多组话
报表系统、借助于mycat的分表能力、处理大规模报表的统计
替代Hbase,分析大数据
作为海量数据实时查询的一种简单有效方案,比如100亿条频繁查询的记录在3秒内查询出来结果,除了基于主键的查询,还可能存在范围查询和其他属性查询,此时mycat可能是最简单有效的选择
Mycat 是一个开源的分布式数据库系统,但是由于真正的数据库需要存储引擎,而Mycat并没有存储引擎,所以并不是完全意义的分布式数据库系统
Mycat 介于数据库与应用之间,进行数据处理与交互的中间服务,相对来说,将原有的一个数据库

mycat分片规则

 

1.1、连续分片
优点:扩容无需迁移数据、范围条件查询消耗资源少
缺点:存在数据热点的可能性、并发访问能力受限单一或少量datanode

mycat分片

离散分片
优点:并发访问能力增强,范围条件查询性能提升
缺点:数据扩容比较困难,涉及到数据迁移问题、数据库连接消耗比较多。

离散分片

1.3、典型范围查询的场景对比
关系型数据,经常使用范围查询上

null

打赏作者

Leave a Reply

Your email address will not be published.