前言

在MySQL中跨库查询主要分为两种情况,一种是同服务的跨库查询;另一种是不同服务的跨库查询;它们进行跨库查询是不同的,下面就具体介绍这两种跨库查询。

一、同服务的跨库查询

同服务的跨库查询只需要在关联查询的时候带上数据名,SQL的写法是这样的:SELECT * FROM 数据库1.table1 x JOIN 数据库2.table2 y ON x.field1=y.field2;例如:

二、不同服务的跨库查询

不同服务的跨库查询,直接通过数据名加表明是无法进行关联的,这里需要用到MySQL数据库中的federated引擎。具体过程如下:

需求:服务A上的数据库X的表A需要关联服务B上的数据库Y中的表B,查询需要的数据;

1、先查看MySQL数据库是否安装了FEDERATED引擎,通过命令show engines;如下图:

如上图所示,MySQL安装了FEDERATED引擎,但Support是No,表示没有启用,去my.cnf文件末加上1行FEDERATED,重启MySQL即可。若没有找到FEDERATED引擎,则需要去安装了。

2、在服务A上的数据库X中创建一个表B,语句如下:CREATE TABLE table_name(……)ENGINE=FEDERATED CONNECTION='mysql://[username]:[password]@[localtion]:[port]/[db-name]/[table-name]'

说明:通过FEDERATED引擎创建的表只是在本地有表定义文件,数据文件则存在于远程数据库中,通过这个引擎可以实现远程数据访问功能。换句话说,这种建表方式会在服务A上的数据库X中创建了一个表结构文件(即服务B上的数据库Y的B表的表结构文件),表的索引、数据等文件还在服务B上的数据库Y中,相当于一种快捷方式,方便关联。

3、在服务A上的数据库X中直接进行A表与B表关联,就可以查询出需要的数据了。

这种方式有以下几点是需要注意的:

1)、该跨库查询方式不支持事务,最好别使用事务。

2)、不能修改表结构。

3)、MySQL使用这种跨库查询方式,远程数据库目前仅支持MySQL,其他数据库不支持。

4)、表结构必须和目标数据库表完全一致。

总结

到此这篇关于MySQL中进行跨库查询的文章就介绍到这了,更多相关MySQL跨库查询内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

本文标题: MySQL中进行跨库查询的方法示例

本文地址: http://www.cppcns.com/shujuku/mysql/325156.html

mysql 跨数据库查询_MySQL中进行跨库查询的方法示例相关推荐

  1. mysql 回表查询优化_MySQL中的回表查询与索引覆盖:一次百万级别分页查询使用Limit 从90秒到0.6毫秒的优化...

    这里写目录标题 事故现场 解决方案 提到的"回表查询" InnoDB的索引 什么是回表查询 怎么优化回表查询 事故现场 数据库使用的MySQL,有一个日志表,需要进行分页查询,于是 ...

  2. mysql查看执行计划_MySql中如何使用 explain 查询 SQL 的执行计划

    explain命令是查看查询优化器如何决定执行查询的主要方法. 这个功能有局限性,并不总会说出真相,但它的输出是可以获取的最好信息,值得花时间去了解,因为可以学习到查询是如何执行的. 1.什么是MyS ...

  3. mysql 分表索引_mysql中,分表查询和索引查询哪个更快?

    谢谢邀请! 查询快慢主决的因素有很多,存储碎片.数据量大属于I/O类问题:表结构设计.查询语句属于技术是否熟练(经验)问题.对于你的分表快还是索引快的这个问题本身就是有问题的: 在建立数据表的时候,索 ...

  4. mysql添加临时索引_mysql 中添加索引的三种方法

    在mysql中有多种索引,有普通索引,全文索引,唯一索引,多列索引,小伙伴们可以通过不同的应用场景来进行索引的新建,在此列出三种新建索引的方法 mysql 中添加索引的三种方法 1.1 新建表中添加索 ...

  5. mysql时间模糊查询_mysql中那些根据时间查询的sql语句

    在我们使用mysql是免不了要根据时间去查询一些数据,这个时候一般有几种方式可以去查询. 第一种数据库,如果有数据新建时间可以以这个时间为节点,通过当前时间条件去比较时间来查询到此段时间内的数据 例如 ...

  6. mysql 开启引擎命令_MySql中启用InnoDB数据引擎的方法

    1.存储引擎是什么? Mysql中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术, ...

  7. mysql如何删除数据_MySQL中删除数据的两种方法

    1. 在MySQL中有两种方法可以删除数据: 一种是delete语句,另一种是truncate table语句. delete语句可以通过where对要删除的记录进行选择,而使用truncate ta ...

  8. mysql update批量更新_MySql中4种批量更新的方法

    mysql 批量更新共有以下四种办法 1..replace into 批量更新 replace into test_tbl (id,dr) values (1,'2'),(2,'3'),...(x,' ...

  9. mysql 文件批量插入_mysql大批量插入数据的4种方法示例

    前言 本文主要给大家介绍了关于mysql大批量插入数据的4种方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 方法一:循环插入 这个也是最普通的方式,如果数据量不是很大,可以使用, ...

  10. mysql 查询多个记录查询_MySQL多表数据记录查询详解

    在实际应用中,经常需要实现在一个查询语句中显示多张表的数据,这就是所谓的多表数据记录连接查询,简称来年将诶查询. 在具体实现连接查询操作时,首先将两个或两个以上的表按照某个条件连接起来,然后再查询到所 ...

最新文章

  1. Docker 修改运行中的容器端口映射
  2. 在leopard下用textmate开发rails项目
  3. html5 数据缓存,HTML5: 本地缓存
  4. java orm框架有哪些_Java Stream ORM现在带有JOIN
  5. 正泰eplan_【万泉河】给EPLAN初学者的建议:不用宏
  6. coreldraw x4如何重叠图片_CorelDRAW复制及镜面反转对象
  7. linux添加mysql到服务_Linux下将MySQL服务添加到服务器的系统服务中
  8. python写的代码怎么发给别人_用python 代码 怎么给别人发邮件的两种写法
  9. linux 下压缩解压命令
  10. HTMl载入FLV格式网页视频播放器
  11. grafana-reporter
  12. [转] PHP开发通用型标题图片功能
  13. conventional path export与direct path export
  14. maskrcnn训练问题报错:selected_polygons.append(self.polygons[i]) IndexError: list index out of range
  15. Java爬取frame的课程表_超级课程表一键提取课程功能app及课表静态网页内容
  16. 为什么我加了过滤器然后就登不进去了_石英砂过滤器和活性炭过滤器应用区别...
  17. 如何用html制作一个动态烟花,视频加烟花特效 视频如何制作烟花效果|视频上添加动态的焰火效果...
  18. 如何用KiCad进行电路仿真
  19. 智能家居Homekit解决方案
  20. 结构力学计算机矩阵位移法,结构力学-矩阵位移法.ppt

热门文章

  1. 开源协议及应用 (BSD/GPL/LGPL/Apache/MIT)
  2. boost电路输出电流公式_boost电感电流计算
  3. linux双核cpu调试软死锁问题,记一次linux通过jstack定位CPU使用过高问题或排查线上死锁问题...
  4. ios android混合开发框架,iOS基于Cordova框架的混合开发
  5. 1.按钮点击的四种方式
  6. 单行文本溢出省略以及多行文本溢出省略css实现方式
  7. 怎么设置访问服务器文件夹权限凭据,Windows server 共享文件夹权限设置
  8. win10电脑开启卓越性能
  9. 教你轻松搞懂vue-codemirror的基本用法:主要实现代码编辑、验证提示、代码格式化
  10. png转jpg java_怎么把图片PNG格式转换成JPG格式?