mycat
勤径苦舟
书山有路勤为径,学海无涯苦作舟。只技术分享,非商业行为,我很少看消息,所以你们给我发的消息回的很少。
邮件:920786312@qq.com
微信:zhou920786312
展开
-
Mycat--理论--03--Mycat分片规则概述
提前规划好分片字段某个范围属于哪个分片6.2、按日期(天)分片从开始日期算起,按照天数来分片,例如,从2021-01-01,每10天一个分片注意事项:需要提前将分片规划好,建好,否则有可能日期超出实际配置分片数6.3、按单月小时分片最小粒度是小时,可以一天最多24个分片,最少1个分片,一个月完后下月从头开始循环。注意事项:每个月月尾,需要手工清理数据。6.4、自然月分片每个自然月一个分片注意事项:需要提前将分片数规划好,建好,否则有可能日期超出实际配置分片数原创 2022-06-13 10:45:21 · 1031 阅读 · 0 评论 -
Mycat--实践--22--mycat资料
Mycat–实践–22–mycat资料https://gitee.com/DanShenGuiZu/learnDemo/tree/master/mycat/src/doc/资料原创 2022-01-21 09:52:52 · 279 阅读 · 0 评论 -
Mycat--实践--21--Keepalived实现对haporxy的高可用
Mycat–实践–21–Keepalived实现对haporxy的高可用1、架构2、HAProxy的安装名称IpPortHAProxy 主机192.168.187.1337071HAProxy 主机192.168.187.1367071参考地址的https://blog.csdn.net/zhou920786312/article/details/1224303025、安装HAProxy3、Keepalived 实现对haproxy的高可用3.1原创 2022-01-21 09:52:28 · 435 阅读 · 0 评论 -
Mycat--实践--20--haporxy实现Mycat的负载均衡和高可用
Mycat–实践–20–haporxy实现Mycat的负载均衡和高可用1、架构2、机器名称IpPortMyCat1192.168.187.1298066MyCat2192.168.187.1318066HAProxy 主机192.168.187.13370712.1、安装MyCat参考地址https://blog.csdn.net/zhou920786312/article/details/1224252913、开启 rsyslog 的原创 2022-01-21 09:52:18 · 401 阅读 · 0 评论 -
Mycat--实践--19--垂直分库
Mycat–实践–19–垂直分库1、概念我们上面讲的分片,都是水平分库。也就是将一个表的数据,放到多个库中保存。垂直分库就是将多个表,放到多个库中保存。举例如下2、操作期望当前数据库有用户表,商品表,我现在想将用户表放到用户库中(M1S1主机)商品表放到商品库中(M1S2主机)对外提供一个统一的访问地址步骤1、创建数据M1S1主机DROP DATABASE IF EXISTS user_db ;CREATE DATABASE user_db CHARACTER SET U原创 2022-01-18 19:41:48 · 277 阅读 · 0 评论 -
Mycat--实践--18--读写分离
Mycat–实践–18–读写分离1、目的实现数据库的读写分离2、参数说明balance:负载均衡类型balance=“0”不开启读写分离机制,所有读操作都发送到当前可用的writeHost上balance=“1”全部的readHost与stand by writeHost参与select语句的负载均衡,简单的说,当双主双从模式(M1-S1,M2-S2 并且M1 M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡。balance=“2”所有读原创 2022-01-18 19:41:34 · 568 阅读 · 0 评论 -
Mycat--实践--17--9066端口
Mycat–实践–17–9066端口1、介绍是mycat 管理端口2、操作步骤1:进入容器M1M1 有mysql 服务docker exec -it M1 bash 步骤2:使用9066端口mysql -uroot -p123456 -h192.168.187.129 -P9066说明192.168.187.129:是mycat的机器iproot:mycat用户123456:mycat密码3、命令3.1、查看所有可用命令show @@help;3.2、查看原创 2022-01-18 19:41:10 · 934 阅读 · 0 评论 -
Mycat--实践--16--mycat全局主键的生成方式
Mycat–实践–16–mycat全局主键的生成方式1、Mycat全局主键方式1.1、本地文件方式使用服务器本地磁盘文件的方式1.2、数据库方式(不推荐。要写数据库函数)使用数据库的方式1.3、本地时间戳方式使用时间戳方式1.4、分布式zookeeper生成ID2、验证–本地文件方式2.1、验证步骤1、修改 server.xml 配置vim /usr/local/mycat/conf/server.xml 步骤2、修改 schema.xml 配置<?xml ver原创 2022-01-18 19:40:57 · 537 阅读 · 0 评论 -
Mycat--实践--15--分布式ID
Mycat–实践–15–分布式IDhttps://blog.csdn.net/zhou920786312/article/details/101034099原创 2022-01-18 19:40:43 · 214 阅读 · 0 评论 -
Mycat--实践--14--ER表的配置
Mycat–实践–14–ER表的配置1、介绍ER表就是主子表2、ER 关系的数据分片策略子表的数据与父表在同一个数据节点上,即子表依赖于父表,通过表分组(Table Group)保证数据 Join 不会跨库操作。ER表中在schema.xml中使用< childTable >标签定义3、案例步骤1:修改 schema.xml配置<?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"原创 2022-01-18 19:40:27 · 1051 阅读 · 0 评论 -
Mycat--实践--13--全局表和普通表
Mycat–实践–13–全局表和普通表1、全局表1.1、介绍全局表的插入、更新操作会实时在所有节点上执行,保持各个分片的数据一致性全局表的查询操作,只从一个节点获取全局表可以跟任何一个表进行 JOIN操作1.2、可以定义为全局表的特性字典表或者符合字典表特性的表数据变动不频繁数据量总体变化不大数据规模不大,很少有超过数十万条记录。1.3、案例步骤1:修改 schema.xml配置<?xml version="1.0"?><!DOCTYPE mycat原创 2022-01-18 19:40:17 · 1305 阅读 · 0 评论 -
Mycat--实践--12--分片--自然月分片
Mycat–实践–12–分片–自然月分片1、介绍1.1、配置说明<tableRule name="sharding-by-month"> <rule> <columns>create_time</columns> <algorithm>partbymonth</algorithm> </rule></tableRule><function name="partbymonth" cl原创 2022-01-18 19:39:53 · 281 阅读 · 0 评论 -
Mycat--实践--11--分片--字符串ID处理
Mycat–实践–11–分片–字符串ID处理1、介绍1.1、配置说明<tableRule name="jch"> <rule> <columns>id</columns> <algorithm>jump-consistent-hash</algorithm> </rule></tableRule><function name="jump-consistent-hash" class原创 2022-01-18 19:39:42 · 199 阅读 · 0 评论 -
Mycat--实践--10--分片--固定分片hash算法
Mycat–实践–10–分片–固定分片hash算法1、介绍1.1、配置说明<tableRule name="rule2"> <rule> <columns>id</columns> <algorithm>func1</algorithm> </rule></tableRule><function name="func1" class="org.opencloudb.route.fu原创 2022-01-18 19:39:29 · 358 阅读 · 0 评论 -
Mycat--实践--09--分片--范围约定
Mycat–实践–09–分片–范围约定1、介绍1.1、配置说明<tableRule name="auto-sharding-long"> <rule> <columns>id</columns> <algorithm>rang-long</algorithm> </rule></tableRule><function name="rang-long" class="io.myca原创 2022-01-13 15:10:55 · 210 阅读 · 0 评论 -
Mycat--实践--08--分片--取模
Mycat–实践–08–分片–取模1、介绍1.1、配置说明<tableRule name="mod-long"> <rule> <columns>id</columns> <algorithm>mod-long</algorithm> </rule></tableRule><function name="mod-long" class="io.mycat.route.functi原创 2022-01-13 15:10:29 · 365 阅读 · 0 评论 -
Mycat--实践--07--分片--枚举
Mycat–实践–07–分片–枚举1、介绍1.1、配置说明<tableRule name="sharding-by-intfile"> <rule> <columns>sharding_id</columns> <algorithm>hash-int</algorithm> </rule></tableRule><function name="原创 2022-01-13 15:10:20 · 311 阅读 · 0 评论 -
Mycat--实践--06--分片--rule.xml说明
Mycat–实践–06–分片–rule.xml说明1、介绍rule.xml 定义 表拆分的路由规则主要有tableRule和function这两个标签2、tableRule<tableRule name="sharding-by-intfile"> <rule> <columns>sharding_id</columns> <algorithm>hash-int</algorithm> </rule>原创 2022-01-13 15:09:51 · 157 阅读 · 0 评论 -
Mycat--实践--05--schema.xml配置
Mycat–实践–05–schema.xml配置1、位置{MYCAT_HOME}/conf/schema.xml 2、schema:逻辑库<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">2.1、属性说明name逻辑库的名字checkSQLschema数据库前缀设置当该值为true时,例如我们执行语句select * from TESTDB.company,mycat会把语句修改为 sel原创 2022-01-13 15:09:36 · 962 阅读 · 0 评论 -
Mycat--实践--03--mycat名词解释
Mycat–实践–03–mycat名词解释1、逻辑库管理多个物理库,是对多个物理库的抽象。在Mycat中逻辑库在{MYCAT_HOME}/conf/schema.xml 用< schema > 标签定义[外链图防盗链机制,建议将图片保存下来直接上传(img-TI999KiF-1641867241382)(./image2/20.png)]2、逻辑表管理多个物理表,是对多个物理表的抽象。包含下面4种类型分片表全局表ER表非分片在Mycat中逻辑表在{MYCA原创 2022-01-13 15:09:11 · 257 阅读 · 0 评论 -
Mycat--实践--02--安装
Mycat–实践–01–安装1、上传安装包到Linux mkdir /root/mycat cd /root/mycat 安装包Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz2、解压cd /root/mycat tar -zxvf Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz 3、移动到usr/local/mv mycat/ /usr/lo原创 2022-01-13 15:08:49 · 195 阅读 · 0 评论 -
Mycat--实践--01--mysql集群环境安装
Mycat–实践–01–mysql集群环境安装1、主从搭建1.1、机器信息名称IpPortM1192.168.187.1303307M1S1192.168.187.13033081.2、 启动服务docker run --name M1 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7docker run --name M1S1 -p 3308:3306 -e MYSQL_ROOT_PASSWORD原创 2022-01-13 15:08:36 · 262 阅读 · 0 评论 -
Mycat--实践--04--server.xml配置
Mycat–实践–04–server.xml配置1、位置{MYCAT_HOME}/conf/server.xml 2、内容<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mycat:server SYSTEM "server.dtd"><mycat:server xmlns:mycat="http://io.mycat/"> <system> <!-- 字符集设置,mycat连接m原创 2022-01-13 15:09:20 · 477 阅读 · 0 评论 -
Mycat--理论--09--Mycat1.x与Mycat2功能对比
Mycat–理论–09–Mycat1.x与Mycat2功能对比原创 2022-01-13 15:08:23 · 2065 阅读 · 0 评论 -
Mycat--理论--08--Mycat常见案例类型
Mycat–理论–08–Mycat常见案例类型1、MySQL读写分离方案1.1、InnoDB VS MyISAMInnoDBInnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意:当count(*)语句包含 where条件时,两种表的操作是一样的。Innodb 支持事务处理与外键和行级锁,而MyISAM不支持MyISAM的优势读性能比In原创 2022-01-11 10:01:58 · 418 阅读 · 0 评论 -
Mycat--理论--07--Mycat的高可用
Mycat–理论–07–Mycat的高可用1、keepalived实现对haproxy的高可用2、keepalived实现对LVS server的高可用原创 2022-01-11 10:00:59 · 179 阅读 · 0 评论 -
Mycat--理论--06--Mycat跨分片JOIN机制
Mycat–理论–06–Mycat跨分片JOIN机制1、功能简介2、MySQL端实现Join,Mycat端做合并2.1、前提在每一个分片库里,参与Join的多个表的数据符合JOIN规则简单举例某个用户的所有订单跟这个用户在同一个分片上2.2、支持的场景3、下推到Mycat端实现Join3.1、难点和热点问题资源消耗比较大:内存+带宽数据表比较大的情况下,目前没有好的解决方法Mycat认为此问题有两个关键点:不能实时计算,需要提前计算并缓存结果集不能靠程序进行优化,需原创 2022-01-11 10:00:17 · 992 阅读 · 0 评论 -
Mycat--理论--05--Mycat跨分片聚合处理机制
Mycat–理论–05–Mycat跨分片聚合处理机制1、原理图在内存中完成聚合逻辑,所以大量数据的情况下,资源消耗比较严重2、分页Select * from a limit 1002.1、问题存在随机结果集问题,比如分片1上的50条记录与分片2上的50条,取决于分片数据到来的先后顺序。3、排序3.1、算法采用的是堆排序3.2、分片表分页排序的复杂度问题问题取出从第100万开始的100条记录Select * from a order by name limit 1000原创 2022-01-11 09:59:26 · 1465 阅读 · 0 评论 -
Mycat--理论--04--分片策略
Mycat–理论–04–分片策略1、分片策略1.1、根据表数据量判断是否需要切分确保切分后单分片表数据量为1000W左右1.2、根据业务的情况选择合适的分片字段最频繁的或者最重要的查询条件1.3、有关联关系的表配置相同分片规则ER思想,为了应用join等复杂sql一对多对应关系一般按多的那一方切分1.4、如果配置类数据,更新频率比较少考虑全局表1.5、当前活跃数据分片数据规模可以预期数据平滑增长或者基本不变1.6、历史非活跃数据数据规模可以预期数据平滑增长或者基本原创 2022-01-11 09:58:05 · 256 阅读 · 0 评论 -
Mycat--理论--02--基本功能
Mycat–理论–02–基本功能1、高可用性与MySQL读写分离2、业务数据分级存储保障3、100亿大表水平分片,集群并行计算4、数据库路由器:大大提升数据库服务能力5、数据库路由器:整合多种数据源...原创 2022-01-11 09:57:17 · 140 阅读 · 0 评论 -
Mycat--理论--01--术语与原理
Mycat–理论–01–术语与原理1、分片1.1、垂直分片将一个XO大表,按照字段拆分为A表,B表。举例:xo表有xoid,name,password字段现在拆表为A 表:xoid,nameB 表:xoid,password1.2、水平分片将一个XO大表,按照数据,水平拆分为A表,B表。举例:xo表有数据id=1,id=2,id=3现在拆表为A 表:id=1,id=2B 表:id=32、分表,分库2.1、分表就是将一个表的数据,拆原创 2022-01-11 09:55:04 · 613 阅读 · 0 评论