Mysql不同服务器跨库查询解决方案

news/2024/11/30 18:30:40/

项目场景:

Mysql在不同服务器实现跨库查询,类似dblink


解决方案:

在两台不同服务器,实现跨库查询,其实现原理类似一个虚拟映射,需要用到mysql的另一个存储引擎Federated,FEDERATED存储引擎访问在远程数据库的表中的数据,而不是本地的表。

这个特性给某些开发应用带来了便利,你可以直接在本地构建一个federated表来连接远程数据表,配置好了之后本地表的数据可以直接跟远程数据表同步。实际上这个引擎里面是不真实存放数据的,所需要的数据都是连接到其他MySQL服务器上获取。

1、开启FEDERATED引擎

show engines;

 如果这里是NO,需要在配置文件[mysqld]中加入一行:federated

 改完重启服务,就变成yes了。

2、创建虚拟表

场景A库,想访问远程B库的test表

在A数据库上创建虚拟表test_copy,将B库上test表映射到A库上面

CREATE TABLE `test_copy` (`id` int NOT NULL,`name` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=FEDERATED DEFAULT CHARSET=utf8mb3 COMMENT='远程测试表test' CONNECTION='mysql://root:123456@127.0.0.1:3306/B/test';/**
CONNECTION='mysql://root:123456$@127.0.0.1:3306/B/test'
root:代表远程数据库的用户
123456:代表远程数据的密码
127.0.0.1:代表远程数据库的ip地址,域名也可以
B:代表远程数据库的数据库名称
test:代表远程数据库中的哪一张表
**/

与普通建表语句不同的地方:

ENGINE=FEDERATED

CONNECTION='mysql://root:123456@127.0.0.1:3306/B/test'

这样就可以直接查询test_copy表了

注意事项:

1.本地创建的表名必须在远程服务器存在,创建的字段也必须是远程表中的字段,可以比远程表的字段少,但是不能多,本地存储引擎选择

2.对本地虚拟表的结构修改,并不会修改远程表的结构 

3.truncate 命令,会清除远程表数据 

4.drop命令只会删除虚拟表,并不会删除远程表

5.select count(*), select * from limit M, N 等语句执行效率非常低,数据量较大时存在很严重的问题,但是按主键或索引列查询,则很快,如以下查询就非常慢(假设 id   为主索引)

select id from db.tablea where id >100 limit 10 ;


http://www.ppmy.cn/news/45428.html

相关文章

【Node.js入门学习】彻底理解Node.js(非语法篇)

导论:入门新的技术,尽量从历史发展的路径来理解它出现的原因 一、Node.js的总体概况 1. JavaScript的诞生 在上个世纪的1995年,当时的网景公司正凭借其Navigator浏览器,成为Web时代开启时最著名的第一代互联网公司。由于网景公…

ajax 的入门案例

一、ajax ajax,Asynchronous JavaScript And XML,异步的JavaScript和XML 同步:伴随着页面的刷新或跳转,即全局刷新;同步请求会阻塞代码的执行,即同步请求会一个一个的执行 异步:在不刷新页面…

出口欧盟认证机构为什么推荐CE认证

产品做CE证书要什么好处,CE证书要什么作用? 在中国很多中小企业困扰的是,好不容易走出国门接到来自国外的订单。却因为没有相应的产品安全认证而无法顺利取得订单。或者当产品到达目的地后,因为无法提供相应的产品安全认证证明文件…

【Leetcode -205.同构字符串 -228.汇总区间】

Leetcode Leetcode - 205.同构字符串Leetcode - 228.汇总区间 Leetcode - 205.同构字符串 题目:给定两个字符串 s 和 t ,判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。 每个出现的字符…

设计模式:外观模式

一、定义 要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行,隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。 二、角色 Facade:系统对外的统一接口,客户端连接子系统功能的入口SubSystem子系统…

前端配置项

默认下载安装所需插件的时候会自动添加配置,但有时候可能需要自己去配,比如系统重装(重装的是C盘,系统变量会丢失,软件在其他盘符并不需要重新下载)。 前端开发涉及到需要配置变量的软件有:git…

Ps 毛玻璃效果

哈喽,各位小伙伴!今天我们来学习一下如何制作毛玻璃效果? 复制图层 导入一张图片,Ctrlj复制一层,右键—智能对象(目的:方便后期更换图片) 画矩形 画矩形(不要描边),…

day10 线程池及gdb调试多线程

目录 线程池的概念 概念: 必要性: 线程池的基本结构: 线程池的实现 完整代码 线程的GDB调试 线程池的概念 概念: 通俗的讲就是一个线程的池子,可以循环的完成任务的一组线程集合; 必要性&#xff…