最近遇到一个问题,需要在两个服务上的两个数据库进行联表查询,本以为一两句SQL语句就能把问题解决,后来发现没有这么简单。
原因很简单,Mysql虽然支持同一服务器上跨数据库的联表查询(我用的版本是5.0,经证实可行),但并不支持跨服务器。网上有一些跨服务器联表查询的SQL语句,但都是SQL SERVER的,并不适合MYSQL。后来用Hibernate配了两个数据源,想用HQL来查询,结果失败(后来才发现虽然是配了两个数据库,但是还是用的2个seesion)。于是经过大半天的Search和Practise,发现至少有两种解决方法。
以前做数学题,老是要进行化归,即把未知的、不懂的转化为自己已知的来进行解决、实现。
第一种、程序层的解决方法
比较笨,但是操作起来却很简单。你想想,MYSQL不能帮你联表查,但是可以分开查询,把两个结果先记录下来,让JAVA语句来执行联表关系的操作,若还需要更新,再把最后的结果分别更新到两个服务器上。这种方法虽然效率低,但是容易理解,易于实现。
第二种、数据库层的解决方法
1、简单来说,先将A服务器数据库中需用到的表导出,导入B服务器上数据库,查询,若有更新再返回去 (貌似Mysql里面有个叫同步复制,有兴趣的朋友可以去查一下参考文档)
2、也可以使用MySQL FEDERATED存储引擎
其实他的原理和第二种方法一样,只不过不用手动而,须要配置一下,网上有很多介绍怎么用的例子,我就不多述了
其实支持这方面的插件已经有了,不过有兴趣的朋友可以自己尝试一下
分享到:
相关推荐
sql跨服务器查询,很简单的一条语句,适用范围广泛.
创建链接服务器是一种更为稳定且灵活的方式,而 `OPENROWSET` 和 `OPENQUERY` 则提供了无需显式创建链接服务器即可进行跨服务器查询的能力。选择合适的方法取决于具体的应用场景和个人偏好。无论是哪种方式,都极大...
这个脚本实现了跨服务器增量同步mysql数据的功能,可以同步多个表。 在使用这个脚本的时候需要注意有修改的地方就是源表配置、目标表配置需要修改成自己的服务器和登录mysql数据库的用户名和密码。基础配置中需要...
MySQL跨服务器同步数据经验分享中,涉及到的关键知识点主要围绕MySQL数据库的主从同步技术,涉及到的配置项以及操作步骤是本篇分享的核心内容。在详细介绍这些内容之前,我们先来了解一下MySQL主从同步的基本概念...
在MySQL数据库中,跨库查询是经常遇到的需求,尤其在大型系统中,数据库通常被划分为多个逻辑部分,分布在不同的数据库实例上。本文将详细讲解如何在MySQL中进行跨库查询,包括同服务和不同服务下的跨库操作。 首先...
本文将详细介绍两种主要的跨服务器查询方法:OpenDataSource和链接服务器(Linking Server),并讨论它们的使用场景和性能差异。 **一、OpenDataSource** OpenDataSource是SQL Server提供的一种临时性方法,用于一...
为了方便地实现这一需求,可以采用跨服务器查询的方式来构建视图。本文将详细介绍如何通过SQL语句实现跨服务器建立视图的功能,并提供具体的步骤及示例。 #### 二、基础知识概述 1. **链接服务器(Linked Server)...
当我们谈论"C++连接MySQL跨平台"时,我们关注的是如何在不同的操作系统(如Windows、Linux、macOS等)上使用C++编写程序来与MySQL数据库进行交互。这涉及到C++的MySQL客户端库(通常称为libmysqlclient)的使用,它...
由于MySQL本身并不支持直接进行跨服务器、跨数据库的连接查询操作,因此需要寻找一种可行的解决方案来实现这一需求。 #### 二、解决思路 1. **增加数据库配置信息**:首先需要在thinkPHP5项目的数据库配置文件中...
在SQL Server中,链接服务器是一种强大的功能,它允许我们在一个数据库服务器上执行跨服务器查询,直接操作远程数据库,包括非Microsoft SQL Server的数据库,如MySQL。本教程将深入讲解如何通过SQL Server的链接...
.oracle 到 SQL Server 跨库查询 Oracle 到 SQL Server 跨库查询是指通过网关工具将数据从 SQL Server 数据库中抽取到 Oracle 数据库中。这个过程需要安装和配置网关软件,并进行相应的设置和配置。 一、网关软件...
业务场景:关联不同数据库中的表的查询 比如说,要关联的表是:机器A上的数据库A中的表A && 机器B上的数据库B中的表B。 这种情况下,想执行“select A.id,B.id from A left join B on ~~~;“那是不可能的,但业务...
canal 之缓存一致性和跨服务器查询的数据异构解决方案 在项目数据量上涨之后,通常会遇到两种情况:第一种情况是最大可能的使用 Cache 来对抗上层的高并发,第二种情况是需要使用分库分表对抗上层的高并发。为解决...
《PHP%MySQL跨设备网站开发实例精粹》是由陈惠贞和陈俊荣两位专家编著的一本关于使用PHP和MySQL进行跨设备网站开发的专业书籍。这本书深入浅出地介绍了如何构建适应各种设备的动态网站,包括桌面、手机和平板等。在...
在MSSQL中,`dblink`(数据库链接)是一种机制,允许用户在不同的数据库服务器之间建立连接,从而实现跨数据库查询和操作。在我们的场景中,MSSQL将通过创建dblink来访问和操作远程的MySQL数据库。 创建dblink的...
### SQL Server跨服务器连接的多种方法 #### 一、引言 在企业级应用中,经常需要在不同的SQL Server实例之间进行数据交换或共享。为了实现这一目标,SQL Server提供了几种跨服务器连接的方法,每种方法都有其特点和...
1. `mysql-connector-java-5.1.7-bin.jar`:这是MySQL的Java连接器,允许Java应用程序连接到MySQL服务器。它实现了JDBC(Java Database Connectivity)接口,使得Java程序能够通过标准API与MySQL交互。 2. `sqljdbc....
本篇文章将详细介绍MySQL数据库服务器的可视化工具及其安装过程。 首先,让我们来看一下`mysql-5.0.18-win32.zip`这个文件。这是MySQL 5.0.18版本的Windows版安装包。MySQL 5.0系列是MySQL历史上的一个重要版本,它...
4. 下载并安装cmake,它是一个跨平台的自动化构建系统,用于管理MySQL的编译过程。 5. 下载MySQL软件包,这里使用的是MySQL-5.5.22。 6. 安装cmake,解压并运行`./configure`、`make`和`make install`命令。 7. ...