分库分表学习-3 mycat中间件
JTID:可研究一下
关系型数据库和Nosql<不适合存储到关系型数据库中的数据的存储>
非关系型数据库 key-value redis memcache 面向文档 mongodb:面向列 hbase
数据切分
垂直切分:
水平切分:每个库中的大表切分成多个小表
例如一个db拆分成3个db 用户库 商品库和订单库 这个是垂直拆分
再将用户库的用户表拆分成多个小表 分片规则
那么应用层如何访问这些表呢? 做数据库的路由呢?
mycat <proxy>
mycat来配置一些规则
应用只需要和mycat进行连接
具体的select语句的执行是哪个表中查询是由mycat决定的
除此之外还有TDDL Sharding-JDBC cobar 基于应用层和数据库层的路由规则
mycat是分布式数据库系统,实现mysql协议,所以可以将mycat当做mysql
下载mycat源码:
rule.xml schema.xml server.xml
mycat的核心概念:
schema 逻辑数据库