mycat进阶
2021-11-13 22:43:16 13 举报
AI智能生成
登录查看完整内容
笔记
作者其他创作
大纲/内容
分库分表原理
容易出现冷热数据
范围分片
<tableRule name=\"qs-sharding-by-month\"><rule><columns>create_time</columns><algorithm>qs-partbymonth</algorithm></rule></tableRule>
按自然月分片
连续分片
分布均匀,迁移工作量大
十进制取模分片
适用于枚举值固定的场景
枚举分片
一致性hash分片
固定hash分片
取模范围分片
范围取模分片
应用指定分片 PartitionDirectBySubString日期范围哈希 PartitionByRangeDateHash冷热数据分片 PartitionByHotDate
离散分片
分片策略
1、主库开启 binlog,设置 server-id
2、在主库创建具有复制权限的用户,允许从库连接
3、从库/etc/my.cnf 配置,重启数据库
mysql主从复制原理
/*!mycat: sql=注解 SQL 语句*/ 跨库关联查询;已经使用了分片规则的字段,不能作为跨库关联的key,
-- 表/*!mycat: sql=select * from customer where id =1 */ CREATE TABLE test2(id INT);-- 存储过程/*!mycat: sql=select * from customer where id =1 */ CREATE PROCEDURE test_proc() BEGIN END ;
DDL 或存储过程
/*balance*/ select a.* from customer a where a.id=6666;
读写分离
/*!mycat: db_type=master */ select * from customer;/*!mycat: db_type=slave */ select * from customer;/*#mycat: db_type=master */ select * from customer;/*#mycat: db_type=slave */ select * from customer;
读写分离数据库选择
Mycat 在执行 SQL 之前会先解析 SQL 语句,在获得分片信息后再到对应的物理节点上执行。如果 SQL 语句无法解析,则不能被执行。如果语句中有注解,则会先解析注解的内容获得分片信息,再把真正需要执行的 SQL 语句发送到对应的物理节点上。所以我们在使用注解的时候,应该清楚地知道目标 SQL 应该在哪个节点上执行,注解的 SQL 也指向这个分片,这样才能使用。如果注解没有使用正确的条件,会导致原始SQL 被发送到所有的节点上执行,造成数据错误
注解原理
mycat注解
mycat进阶
0 条评论
回复 删除
下一页