我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql跨库查询解决方案

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql跨库查询解决方案

第一种跨库查询,是在同一个mysql服务器下两个不同的数据库之间的联查,关系如下图
在这里插入图片描述
在同一个mysql服务器下,不同的两个数据直接加上库名就可以实现跨库查询了

select * from t_test1 t1, test2.t_test2 t2 where t1.id = t2.id

在这里插入图片描述
执行sql查询到一下结果
在这里插入图片描述
2.第二种跨库查询,是在两台不同服务器(物理服务器)上分别安装的mysql服务器,实现跨库查询,其实现原理类似一个虚拟映射,需要用到mysql的另一个存储引擎Federated,

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

mysql默认没有开启federated存储引擎,需要在配置文件里面开启;

#在[mysqld] 下 添加 federated 然后重启mysql服务就可以了[mysqld]federated

如下图:

在这里插入图片描述

#输入命令查看引擎开启状态show engines;

可以看到,已经开启了
在这里插入图片描述
然后就可在test1数据库上创建虚拟表了,将test2库上t_test2表映射到test1库上面

CREATE TABLE `t_test2` (  `id` int NOT NULL,  `name` varchar(255) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=FEDERATED DEFAULT CHARSET=utf8mb3 COMMENT='远程测试表t_test2' CONNECTION='mysql://root:123456@127.0.0.1:3306/test2/t_test2' ;

执行sql语句
在这里插入图片描述可以看到创建了一张t_test2的表,这张表其实不存在只是一个远程的映射而已
在这里插入图片描述可以看到使用FEDERATED引擎
在这里插入图片描述表创建完成后就可以写sql了

select * from t_test1 t1, t_test2 t2 where t1.id = t2.id

可以看到执行结果
在这里插入图片描述

federated使用注意事项: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 ;

来源地址:https://blog.csdn.net/fx9590/article/details/124047681

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql跨库查询解决方案

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql跨库查询解决方案

1.第一种跨库查询,是在同一个mysql服务器下两个不同的数据库之间的联查,关系如下图 在同一个mysql服务器下,不同的两个数据直接加上库名就可以实现跨库查询了 select * from t_test1 t1, test2.t_tes
2023-08-19

详解mysql跨库查询解决方案

本文主要介绍了mysql跨库查询解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2022-11-13

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

目录项目场景:解决方案:1、开启FEDERATED引擎2、创建虚拟表项目场景:mysql在不同服务器实现跨库查询,类似dblink。解决方案:在两台不同服务器,实现跨库查询,其实现原理类似一个虚拟映射,需要用到mysql的另一个存储引
2023-06-10

mysql之跨库关联查询问题怎么解决

这篇文章主要介绍了mysql之跨库关联查询问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql之跨库关联查询问题怎么解决文章都会有所收获,下面我们一起来看看吧。1、解决方案mysql是不支持跨库
2023-07-05

sqlserver跨库查询慢怎么解决

SQL Server 跨库查询慢可能是由于多种原因导致的,下面是一些可能的解决方案:使用合适的索引:确保在涉及到跨库查询的表上建立了适当的索引,以提高查询性能。使用合适的连接方式:在跨库查询时,尽量避免使用复杂的连接方式,如跨数据库连接、嵌
sqlserver跨库查询慢怎么解决
2024-04-09

MySQL慢查询以及解决方案详解

目录一、前言二、慢查询2.1 什么是慢查询?2.2 慢查询配置1、慢查询日志2、未使用索引是否开启日志3、慢查询时间设置4、慢查询路径三、慢查询日志分析3.1 mysqldumpslow工具四、慢查询解决方案4.1 索引失效4.2 SQL语
2023-05-05

MySQL中进行跨库查询的方法示例

前言 在MySQL中跨库查询主要分为两种情况,一种是同服务的跨库查询;另一种是不同服务的跨库查询;它们进行跨库查询是不同的,下面就具体介绍这两种跨库查询。 一、同服务的跨库查询 同服务的跨库查询只需要在关联查询的时候带上数据名,SQL的写法
2022-05-28

MySQL如何实现跨库join查询

目录mysql实现跨库join查询同服务器的不同库不同服务器的不同库数据库跨库join方案总结MySQL实现跨库joinjs查询同服务器的不同库只需要在表名前加上db_nameselect*fromupythonserdb.user
2023-03-09

MySQL怎么实现跨库join查询

这篇文章主要介绍了MySQL怎么实现跨库join查询的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL怎么实现跨库join查询文章都会有所收获,下面我们一起来看看吧。MySQL实现跨库join查询同服务器
2023-07-05

数据库高并发解决方案——查询优化

查询优化 ①保证在实现功能的基础上,尽量减少对数据库的访问次数; ②通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担; ③能够分开的操作尽量分开处理,提高每次的响应速度; ④在数据窗口使用SQL时,尽量把使用的索引放在选择的
数据库高并发解决方案——查询优化
2020-07-29

编程热搜

目录