mycat权威指南-读书笔记

1.数据库垂直拆分

1.1)什么是垂直拆分

垂直拆分是指按照业务将表进行分类,分布到不同的数据库上面,这样也就将数据或者说压力分担到不同的库上面。

1.2)拆分的优缺点

优点:拆分后业务更清晰,数据和代码维护更简单。
缺点:表无法join,只能通过接口,事务处理复杂。

2.数据库水平拆分

2.1)什么是水平拆分

水平拆分不是将表做分类,而是按照某个字段的某种规则将同一个表的数据分散到多个库中,每个表包含一部分数据。

2.2)分片规则

  • 按照用户ID求模,将数据分散到不同的数据库。
  • 按照日期,将不同月甚至日的数据分散到不同的库中。
  • 按照某个特定的字段求模,或者根据特定范围段分散到不同的库中。

2.3)拆分优缺点

优点:不存在单表大数据,性能瓶颈,提高了系统稳定性和负载能力。
缺点:分片规则不好把握,多次扩展难度较大。

3.mycat工作原理

mycat会拦截用户发送过来的SQL语句, 首先对SQL语句做了一些特定的分析: 如分片分析、路由分析、读写分离分析、缓存分析,然后将此SQL发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。

4.几个重要概念

4.1)ER表

子表的记录与所关联的父表记录存放在同一个数据分片上,即子表依赖于父表,这样可保证数据join不会有跨库操作。

4.2)全局表

一般变动不频繁, 数据量不大的表可定义为全局表, mycat通过数据冗余来解决这类表的join, 即所有的分片都有一份数据的拷贝。数据冗余是解决跨分片join的一种很好的思路。

4.3)全局序列号

数据切分后, 原有的关系数据库中的主键约束在分布式条件下将无法使用,因此需要引入外部机制保证全局性数据唯一性标识,这就是全局序列号。

5.mycat目录结构

5.1)bin目录

存放了一些可执行命令

5.2)conf目录

server.xml: mycat服务器参数调整和用户授权的配置
schema.xml: 逻辑库定义和表以及分片定义的配置
rule.xml: 分片规则的配置

5.3)lib目录

存放mycat依赖的一些jar文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章