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

MySQL如何实现跨库join查询

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

MySQL如何实现跨库join查询

MySQL实现跨库join查询

同服务器的不同库

只需要在表名前加上db_name

select
	*
from
	userdb.user u
join orderdb.`order` o on
	u.id = o.user_id;

不同服务器的不同库

1.查看配置 FEDERATED

SHOW engines;

在这里插入图片描述

如果是NO,需要改为YES.默认是NO

在my.ini文件中增加一行,重启MySQL 服务即可

federated

2.在本地库创建相同的表建立连接

CREATE TABLE `order` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `user_id` bigint NOT NULL,
  `product_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
)  ENGINE =FEDERATED CONNECTION='mysql://root:123456@192.168.10.100:3306/orderdb/order';

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

CONNECTION选项中的连接字符串的一般形式如下:

scheme://user_name[:password]@host_name[:port_num]/db_name/tbl_name

配置密码作为纯文本的话会存在安全问题,运行show create table,show table status是可以见的

note:

  • 本地表结构必须与远程完全一样
  • 远程数据库只能连接MySql;
  • 不支持事务;
  • 不支持表结构的修改
  • 本地表更新,远程表也同步更新,反之亦然
  • 删除本地表,远程表不会删除

数据库跨库join方案

最好不要出现跨库join,应该在设计的时候就避免。

将需要join的表放在同一数据库,即便是分库分表看能不能按相同维度分到一起。

或者看能不能设冗余字段,避免关联查询。

那如果无法避免跨库join,也应该走微服务API查询,或者使用中间件实现。

比如:

1.调用两个服务API分别查询,再组装数据;

2.利用Canal,将数据同步到业务系统数据库;

3.将两个服务的数据实时同步到一个只读库,然后在只读库查询;

一定要跨库join,MySQL也是可以支持的:

1.开启FEDERATED引擎,修改my.ini(或my.cnf)文件新添加一行,内容为federated,然后重启MySQL。

2.在数据库中建立远程表,通过参数CONNECTION='mysql://username:pwd@ip:端口/库名/表名

3.直接在SQL语句使用join即可。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

免责声明:

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

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

MySQL如何实现跨库join查询

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

下载Word文档

猜你喜欢

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

mysql dblink跨库关联查询如何实现

本文小编为大家详细介绍“mysql dblink跨库关联查询如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“mysql dblink跨库关联查询如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1、解
2023-07-05

java如何实现跨库查询

在Java中,可以使用JDBC(Java Database Connectivity)来实现跨库查询。以下是一个简单的示例:```javaimport java.sql.*;public class CrossDatabaseQueryEx
2023-09-14

如何实现mysql远程跨库联合查询

这篇文章主要为大家展示了“如何实现mysql远程跨库联合查询”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现mysql远程跨库联合查询”这篇文章吧。情况一2个库在同一台物理主机联合查询(不
2023-06-29

MySQL数据库如何连接查询join

今天小编给大家分享一下MySQL数据库如何连接查询join的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、连接查询的分类交
2023-07-02

mysql dblink跨库关联查询的实现

本文主要介绍了mysql dblink跨库关联查询的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-02-27

mysql跨库联表查询怎么实现

在MySQL中,跨库联表查询可以通过使用数据库名称作为前缀来实现。以下是一个示例:SELECT t1.column1, t2.column2FROM database1.table1 t1JOIN database2.table2 t
mysql跨库联表查询怎么实现
2024-04-09

mysql dblink跨库关联查询的实现

目录1、解决方案2、操作3、缺点1、解决方案mysql是不支持跨库连接的,如果我们实在要连接的话可以用dblink方式。解释:dblink就是我们在创建表的时候连接到我们的远程库,然后我们本地新建的表数据就是映射远程的表的数据。当我们创
2023-02-27

MySQL之join查询如何优化

这篇文章主要介绍“MySQL之join查询如何优化”,在日常操作中,相信很多人在MySQL之join查询如何优化问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL之join查询如何优化”的疑惑有所帮助!
2023-07-05

如何通过索引优化PHP与MySQL的跨表查询和跨数据库查询?

引言:在面对需要处理大量数据的应用程序开发中,跨表查询和跨数据库查询是不可避免的需求。然而,这些操作对于数据库的性能来说是非常消耗资源的,会导致应用程序变慢甚至崩溃。本文将介绍如何通过索引优化PHP与MySQL的跨表查询和跨数据库查询,从而
2023-10-21

oracle跨库关联查询怎么实现

在Oracle中,可以使用以下几种方法实现跨库关联查询:使用数据库链接(Database Link):首先在目标数据库中创建一个数据库链接,然后使用该链接在当前数据库中执行查询。例如,假设有两个数据库A和B,需要在数据库A中查询数据库B中的
oracle跨库关联查询怎么实现
2024-04-09

Aurora怎么实现跨数据库查询

要实现跨数据库查询,Aurora可以使用数据复制和联合查询来实现。以下是一些步骤和方法:配置数据复制:Aurora支持将数据从一个数据库实例复制到另一个数据库实例。您可以配置数据复制,将数据从一个数据库实例复制到另一个数据库实例,并在目标数
Aurora怎么实现跨数据库查询
2024-04-09

编程热搜

目录