Mycat (一)

Mycat是数据层与数据库之间的一个中间件。

Mycat的前身是阿里的一个开源项目,Cobar。

Cobar早前阿里没有继续更新和维护,后被一个民间组织捡起来重构,修复了一些BUG,新增了一些功能,同时不仅仅是支持Mysql。

这个组织很有意思的是,他们的目标呢,是加入Apache。

官网给出的下载地址:

https://github.com/MyCATApache/Mycat-download-new

而这个中间件能帮我们做什么呢?

需求:

       在大量的数据面前,这些数据是不适合添加缓存查询的,且要保证数据完整,查询效率高。

难点:

Mysql实际上呢,它的性能方面还是比不上Oracle,而如果数据存在于百万条以上的话,特别是多表联查的时候,关系型数据库的查询速度会变得很慢,而有些特定的数据呢,是不希望放在缓存当中的,万一缓存丢失,数据也就丢失了,而这些数据的读写量也是非常之高的,所以这个时候呢,就希望数据库的性能呢,能更好一些。

思路:

       我们不希望在查询数据的时候过慢,除了增加本身数据库的优化内容,而常做的一些工作就是分库分表。

分库分表的形式有两种:

※ 垂直分割

为不同的业务单独建库,就像一个服务用户的服务,它将所有与用户有关的数据放在一个库里。

优点:将该业务的数据从一个库中抽出后单独作为一个库,不与其他数据关联,看起来明确一些吧。

缺点:这也没有从根本上解决说数据量读写速度提升,且,如果要将该业务与其他业务的数据关联,需先从这个数据库中拿到数据后,再通过一些主键查询的操作,从而达到目的。

※ 水平分割

有多个库,且每个库上都有相同的数据表,且这些数据表存储的数据是部分数据。

缺点:数据表暴增

优点:能基本上解决之前所说的数据量读写的速度问题,且它应该要具有一些拆分规则,拆分规则指定了每个库中每张表所能存储的最大数据量是多少,且它做数据读取时,应该是有对应的查询导向。


Mycat这个中间件就用来帮我们做数据库的切分。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 需要原文的可以留下邮箱我给你发,这里的文章少了很多图,懒得网上粘啦 1数据库基础 1.1数据库定义 1)数据库(D...
    极简纯粹_阅读 7,855评论 0 46
  • 第一章 昙花(守护者:夜昙) 在清晨,昙花隐蔽在树叶中,躲避着阳光,她每天都紧闭双眼,不肯面对有眼光的世界,...
    盈steed阅读 521评论 0 1
  • 1.感恩我如是地存在,可以格物致知,知行合一 2.感恩早上喝的水,盛水的杯子 3.感恩我体内的五脏六腑,感恩我体内...
    杨棠伊阅读 409评论 0 0
  • “林子大了之啥鸟都有”,这绝对是日常生活中出镜率最高的话语之一,不过对我而言还算是比较新鲜的。至于原因无非两条,一...
    夏野阅读 192评论 0 0
  • 是谁再叫 伴着聊骚 暖风撩起了衣角 让汗水外冒 月色惊扰了寒流 晃动了出柳的树梢 让江岸多了些许欢笑 你可见过如此妖娆
    蓝色汪星人阅读 241评论 4 16

友情链接更多精彩内容