您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# MyCat全局表怎么使用
## 什么是MyCat全局表
MyCat全局表(Global Table)是MyCat分库分表中间件提供的一种特殊表类型,它会在所有数据节点(分片)上保持完全一致的数据副本。主要特性包括:
- **全节点冗余存储**:数据会同步复制到所有配置的物理库中
- **自动数据同步**:通过MyCat写入的数据会自动同步到所有节点
- **本地化查询**:查询操作可以在任意节点本地执行,避免跨库JOIN
## 适用场景
全局表特别适合以下业务场景:
1. **数据量小的基础表**:如地区表、字典表、配置表等
2. **高频关联查询表**:需要与其他分片表频繁JOIN的维度表
3. **读多写少的表**:写入频率低但查询频率高的表
## 配置全局表
### 1. schema.xml配置
```xml
<table name="t_region" primaryKey="id" type="global" dataNode="dn1,dn2,dn3"/>
关键参数说明:
- type="global"
:声明为全局表类型
- dataNode
:指定要同步的节点列表
- primaryKey
:必须指定主键,用于数据同步
全局表通常不需要分片规则,但如果需要特殊路由可配置:
<tableRule name="global-rule">
<rule>
<columns>id</columns>
<algorithm>hash-mod</algorithm>
</rule>
</tableRule>
/*!mycat:sql=select * from t_region where id = 100*/
SELECT * FROM t_region WHERE id = 100;
使用HintSQL可以指定从特定节点查询
通过MyCat创建表会自动在所有节点同步:
CREATE TABLE t_region (
id INT PRIMARY KEY,
name VARCHAR(50),
code VARCHAR(20)
);
-- 插入数据(会自动同步到所有节点)
INSERT INTO t_region VALUES(1,'华北','HB');
-- 更新数据(所有节点同步更新)
UPDATE t_region SET code='HuaBei' WHERE id=1;
-- 查询(从本地节点直接读取)
SELECT * FROM t_region WHERE code LIKE 'Hu%';
CHECK TABLE t_region
命令检查数据一致性REPR TABLE t_region
命令修复数据特性 | 全局表 | ER表 |
---|---|---|
数据分布 | 全节点全量数据 | 按关联规则分布 |
同步方式 | 写时同步 | 无自动同步 |
适用场景 | 小表/维度表 | 具有主外键关联的表 |
查询性能 | 本地查询快 | 可能需要跨库查询 |
通过合理使用全局表,可以显著提升分库分表环境下的关联查询性能,同时保证基础数据的一致性。需要根据实际业务特点进行选择和优化。 “`
这篇文章从全局表的概念、配置方法到使用注意事项进行了全面介绍,包含了配置示例、SQL示例和常见问题解决方案,总字数约950字,采用Markdown格式,可以直接用于技术文档发布。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。