mycat分库分表原理
一:介绍
1:mycat就是一个数据库中间件,数据库的代理,它屏蔽了物理数据库,应用连接mycat,然后mycat再连接物理数据库
2:它支持水平拆分(分库分表,通过分库达到分表),支持多种分片规则
3 : 它支持mysql、oracle、mongodb,sql server,并且支持数据库集群
4: MyCat技术原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的SQL语句,首先对SQL语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此SQL发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户
二:mycat核心配置文件
server.xml - 配置连接mycat的用户名、密码、数据库名
schema.xml-配置schema、datanone、datahost
rule.xml- 分片规则(简单理解为哪种数据插入到A库中,哪种数据插入到B库中)
ps:
分库分表技术
把原本存储在同一个库的数据分块存储到多个库上
把原本存储于一个表中的数据分块存储到多个表上
拆分的目的:分散单台设备负载
A:垂直拆分:根据业务把表存到不同的库
B:水平拆分:把一个表的数据分为多个库上
C:垂直水平拆分