MyCat01-概述

分库分表概述

分库分表应用注意

1.在数据库设计时考虑垂直分库和垂直分表
2.数据量增加时,不要马上做水平分割,而是先考虑缓存处理、读写分离、使用索引等方式。如果以上方式不能解决,再考虑水平分库和水平分表

分库分表问题

1.跨节点连接查询问题(查询垂直分库中的关联数据),这种情况需要分多次查询
2.管理的数据库变多了

分类

纵向切分:将单表拆分成多个表,分散到不同的数据库。或者将单个数据库的多个表按业务类别分散到不同的数据库上

水平分割:按照表中某个字段的某种规则,把表中的许多记录按行切分,分散到多个数据库中

mycat概述

mycat是基于Java的分布式数据库系统中间层,支持JDBC(java数据库连接)形式连接,支持MYSQL、Oracle、Sqlserver、Mongdb等。提供数据读写分离服务。可以实现数据库服务器高可用。提供数据分片服务

mycat工作原理

mycat拦截用户发送的SQL语句,先解析这个SQL查找涉及到的表,然后获取SQL里分片字段的值,并匹配分片函数,获得分片列表,再将SQL发往这些分片去执行,最后收集和处理所有分片结果数据,并返回到客户端

Mycat支持提供10种分片规则

vim /usr/local/mycat/conf/rule.xml

枚举法                  sharding-by-intfile
固定分片                rule1
范围约定                auto-sharding-long
求模法                  mod-long
日期列分区法            sharding-by-date
通配取模                sharding-by-pattern
ASCII码求模通配         sharding-by-prefixpattern
编程指定                sharding-by-substring
字符串拆分hash解析       sharding-by-stringhash
一致性                  hash sharding-by-murmur

目录结构

ls /usr/local/mycat

bin                  与服务相关的命令,如:启动、停止
catlet               空的,作用是安扩展功能,比如多表联查
conf                 配置文件
lib                  使用的jar包,服务运行过程中调用的程序和模块
logs                 启动日志和运行日志
wrapper.log          mycat服务启动日志
mycat.log            记录SQL脚本执行后的报错内容

重要配置文件
server.xml          设置连接mycat的用户授权
rule.xml            定义mycat分片规则及规则对应的算法
schema.xml          逻辑库表的配置文件

ls /usr/local/mycat/conf/*.txt
autopartition-long.txt  partition-hash-int.txt  partition-range-mod.txt

ls /usr/local/mycat/conf/*.xml
ehcache.xml  log4j.xml  router.xml  rule.xml  schema.xml  server.xml

Mycat逻辑结构

posted @   立勋  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示