MySql FEDERATED ENGINE总结使用

本文介绍如何利用MySQL的FEDERATED引擎实现跨库表JOIN操作,通过具体案例展示了如何创建引用表,并讨论了使用过程中的注意事项及限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该引擎使用的业务场景:

当需要跨库(跨不同的mysql实例)进行表的JOIN,相当于本地表一样去JOIN的时候可以考虑使用FEDEATED引擎,用FEDEATED引擎只需要在本地建立一张链表和订单表一样的字段只是引擎选择为FEDEATED,来指向真实的订单表,就相当与引用。后面我们会有例子来进行实际说明

业务场景: 例如你在数据统计的时候既要用到订单表又要用到仓储的表

常规做法

 

  1. 用编程语言进行JION操作
  2. 落地一份订单表或者仓储的表到本地然后进行SQL JOIN
  3. 将订单库挂一个从库在本地

注意事项

  1. 禁止使用链表类似,limit 10这种SQL(它会把所有的数据拉到本地内存然后在截断,大表的时候直接卡死)
  2. 原表新增字段无所谓,删除和修改字段名,本地链表应相应修改,不然会报错
  3. JOIN操作的时候超过三个链表将会比较慢

例子:

CREATE TABLE `shop`.`tb_order` (
  `bill_id` bigint(20) unsigned NOT NULL COMMENT '价保单号',
  `goods_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '商品SKU',
  `goods_num` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '数量',
  `price` decimal(12,2) NOT NULL DEFAULT '0.00' COMMENT '单价',
  PRIMARY KEY (`bill_id`)
) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='mysql://user:password@host:port/shop/tb_order';

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值