mysql 分表触发器_MySQL分库分表

本文介绍了MySQL水平分表的简单操作,通过使用MERGE引擎和触发器实现数据的分散存储。首先清理user1和user2表,然后创建INSERT_METHOD为1的触发器,当在user1或user2表中插入数据时,从tb_ids表获取id并更新。通过示例展示了数据的插入和更新过程,完成水平分表。
摘要由CSDN通过智能技术生成

https://blog.csdn.net/csdn_heshangzhou/article/details/82963237

https://mp.weixin.qq.com/s/BDXrSFG5KwIi9OjOZcOaYw

一、水平分表

这里做的是我的一个笔记。

水平分表比较简单, 理解就是:

合并的表使用的必须是MyISAM引擎

表的结构必须一致,包括索引、字段类型、引擎和字符集

5997717ba721f25c76a1fb5e250d6868.png

数据表

user1

12e602b7413a090674b3fbcdd6dccc50.png

user2

9873478a00ef2c734c08ac2c6f0502da.png

user

d23e7dd85c71764114f25d5a11a59ec5.png

1) ENGINE = MERGE 和 ENGINE = MRG_MyISAM是一样的意思,都是代表使用的存储引擎是 Merge。

2) INSERT_METHOD,表示插入方式,取值可以是:0 和 1,0代表不允许插入,1代表可以插入;

3) FIRST插入到UNION中的第一个表,LAST插入到UNION中的最后一个表。

触发器

如果user1和user2中有数据的话先清除

然后在user1和user2表中分别建立一个触发器(tr_seq和tr_seq2),触发器的功能是 当在user1或者user2表中增加一条记录时,取出tb_ids中的id值,赋给user1和user2的id,然后将tb_ids的id值加1.

user1的触发器:tr_seq

user2的触发器:tr_seq2

db90284be75edcdb8a36660831b904e6.png

b8e2841325282a86f7f0fefe99a365cc.png

我是直接扔进一个sql文件source执行的, 效果都一样.

然后查询一下触发器

b0b5032e672fea7c674c4f746ac41e09.png

此时已经分表成功, 下面插入数据

查询一下所有数据库

d079aad0ac94dab3e11607317aa35657.png

查询user1

查询user2

再插入几条数据, 前面插入的太偏向了

此时查看user

user1

user2

下面我们update一下

再看一下user

user1

user2

水平分表完成!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值