`

Mysql跨服务器查询

阅读更多

最近遇到一个问题,需要在两个服务上的两个数据库进行联表查询,本以为一两句SQL语句就能把问题解决,后来发现没有这么简单。
原因很简单,Mysql虽然支持同一服务器上跨数据库的联表查询(我用的版本是5.0,经证实可行),但并不支持跨服务器。网上有一些跨服务器联表查询的SQL语句,但都是SQL SERVER的,并不适合MYSQL。后来用Hibernate配了两个数据源,想用HQL来查询,结果失败(后来才发现虽然是配了两个数据库,但是还是用的2个seesion)。于是经过大半天的Search和Practise,发现至少有两种解决方法。

以前做数学题,老是要进行化归,即把未知的、不懂的转化为自己已知的来进行解决、实现。

第一种、程序层的解决方法
比较笨,但是操作起来却很简单。你想想,MYSQL不能帮你联表查,但是可以分开查询,把两个结果先记录下来,让JAVA语句来执行联表关系的操作,若还需要更新,再把最后的结果分别更新到两个服务器上。这种方法虽然效率低,但是容易理解,易于实现。

第二种、数据库层的解决方法
1、简单来说,先将A服务器数据库中需用到的表导出,导入B服务器上数据库,查询,若有更新再返回去 (貌似Mysql里面有个叫同步复制,有兴趣的朋友可以去查一下参考文档)

2、也可以使用MySQL FEDERATED存储引擎
其实他的原理和第二种方法一样,只不过不用手动而,须要配置一下,网上有很多介绍怎么用的例子,我就不多述了


其实支持这方面的插件已经有了,不过有兴趣的朋友可以自己尝试一下

分享到:
评论

相关推荐

    sql跨服务器查询,很简单的一条语句,适用范围广泛.

    sql跨服务器查询,很简单的一条语句,适用范围广泛.

    mssql跨服务器连接脚本

    创建链接服务器是一种更为稳定且灵活的方式,而 `OPENROWSET` 和 `OPENQUERY` 则提供了无需显式创建链接服务器即可进行跨服务器查询的能力。选择合适的方法取决于具体的应用场景和个人偏好。无论是哪种方式,都极大...

    跨服务器增量同步mysql表数据的shell实现

    这个脚本实现了跨服务器增量同步mysql数据的功能,可以同步多个表。 在使用这个脚本的时候需要注意有修改的地方就是源表配置、目标表配置需要修改成自己的服务器和登录mysql数据库的用户名和密码。基础配置中需要...

    MYSQL跨服务器同步数据经验分享

    MySQL跨服务器同步数据经验分享中,涉及到的关键知识点主要围绕MySQL数据库的主从同步技术,涉及到的配置项以及操作步骤是本篇分享的核心内容。在详细介绍这些内容之前,我们先来了解一下MySQL主从同步的基本概念...

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

    在MySQL数据库中,跨库查询是经常遇到的需求,尤其在大型系统中,数据库通常被划分为多个逻辑部分,分布在不同的数据库实例上。本文将详细讲解如何在MySQL中进行跨库查询,包括同服务和不同服务下的跨库操作。 首先...

    跨服务器sql

    本文将详细介绍两种主要的跨服务器查询方法:OpenDataSource和链接服务器(Linking Server),并讨论它们的使用场景和性能差异。 **一、OpenDataSource** OpenDataSource是SQL Server提供的一种临时性方法,用于一...

    跨服务器建立视图sql

    为了方便地实现这一需求,可以采用跨服务器查询的方式来构建视图。本文将详细介绍如何通过SQL语句实现跨服务器建立视图的功能,并提供具体的步骤及示例。 #### 二、基础知识概述 1. **链接服务器(Linked Server)...

    c++ 连接mysql 跨平台

    当我们谈论"C++连接MySQL跨平台"时,我们关注的是如何在不同的操作系统(如Windows、Linux、macOS等)上使用C++编写程序来与MySQL数据库进行交互。这涉及到C++的MySQL客户端库(通常称为libmysqlclient)的使用,它...

    thinkPHP5解决不同服务器不同数据库表关联查询问题

    由于MySQL本身并不支持直接进行跨服务器、跨数据库的连接查询操作,因此需要寻找一种可行的解决方案来实现这一需求。 #### 二、解决思路 1. **增加数据库配置信息**:首先需要在thinkPHP5项目的数据库配置文件中...

    sql server 通过链接服务器连接mysql

    在SQL Server中,链接服务器是一种强大的功能,它允许我们在一个数据库服务器上执行跨服务器查询,直接操作远程数据库,包括非Microsoft SQL Server的数据库,如MySQL。本教程将深入讲解如何通过SQL Server的链接...

    oracle到sqlserver 跨库查询

    .oracle 到 SQL Server 跨库查询 Oracle 到 SQL Server 跨库查询是指通过网关工具将数据从 SQL Server 数据库中抽取到 Oracle 数据库中。这个过程需要安装和配置网关软件,并进行相应的设置和配置。 一、网关软件...

    mysql中的跨库关联查询方法

    业务场景:关联不同数据库中的表的查询 比如说,要关联的表是:机器A上的数据库A中的表A && 机器B上的数据库B中的表B。 这种情况下,想执行“select A.id,B.id from A left join B on ~~~;“那是不可能的,但业务...

    canal之-缓存一致性和跨服务器查询的数据异构解决方案.docx

    canal 之缓存一致性和跨服务器查询的数据异构解决方案 在项目数据量上涨之后,通常会遇到两种情况:第一种情况是最大可能的使用 Cache 来对抗上层的高并发,第二种情况是需要使用分库分表对抗上层的高并发。为解决...

    PHP%MySQL跨设备网站开发实例精粹

    《PHP%MySQL跨设备网站开发实例精粹》是由陈惠贞和陈俊荣两位专家编著的一本关于使用PHP和MySQL进行跨设备网站开发的专业书籍。这本书深入浅出地介绍了如何构建适应各种设备的动态网站,包括桌面、手机和平板等。在...

    MSSQL 数据库中创建MySql 跨数据库数据同步

    在MSSQL中,`dblink`(数据库链接)是一种机制,允许用户在不同的数据库服务器之间建立连接,从而实现跨数据库查询和操作。在我们的场景中,MSSQL将通过创建dblink来访问和操作远程的MySQL数据库。 创建dblink的...

    SQL Server跨服务器连接的多种方法

    ### SQL Server跨服务器连接的多种方法 #### 一、引言 在企业级应用中,经常需要在不同的SQL Server实例之间进行数据交换或共享。为了实现这一目标,SQL Server提供了几种跨服务器连接的方法,每种方法都有其特点和...

    连接mysql sqlserver的两个数据库

    1. `mysql-connector-java-5.1.7-bin.jar`:这是MySQL的Java连接器,允许Java应用程序连接到MySQL服务器。它实现了JDBC(Java Database Connectivity)接口,使得Java程序能够通过标准API与MySQL交互。 2. `sqljdbc....

    mysql数据库服务器可视化工具及安装图解

    本篇文章将详细介绍MySQL数据库服务器的可视化工具及其安装过程。 首先,让我们来看一下`mysql-5.0.18-win32.zip`这个文件。这是MySQL 5.0.18版本的Windows版安装包。MySQL 5.0系列是MySQL历史上的一个重要版本,它...

    mysql主从服务器设置方法

    4. 下载并安装cmake,它是一个跨平台的自动化构建系统,用于管理MySQL的编译过程。 5. 下载MySQL软件包,这里使用的是MySQL-5.5.22。 6. 安装cmake,解压并运行`./configure`、`make`和`make install`命令。 7. ...

Global site tag (gtag.js) - Google Analytics