`

mysql中的跨库关联查询不同机器上的库

 
阅读更多

业务场景:关联不同数据库中的表的查询

比如说,要关联的表是:机器A上的数据库A中的表A && 机器B上的数据库B中的表B。

这种情况下,想执行“select A.id,B.id from A left join B on ~~~;“那是不可能的,但业务需求不可变,数据库设计不可变,这就蛋疼了。。

解决方案:在机器A上的数据库A中建一个表B。。。

这当然不是跟你开玩笑啦,我们采用的是基于MySQL的federated引擎的建表方式

建表语句示例:CREATE TABLE `table_name`(......) ENGINE =FEDERATED CONNECTION='mysql://[username]:[password]@[location]:[port]/[db-name]/[table-name]'

前提条件:你的mysql得支持federated引擎(执行show engines;可以看到是否支持)。

如果有FEDERATED引擎,但Support是NO,说明你的mysql安装了这个引擎,但没启用,去my.cnf文件末添加一行  federated  ,重启mysql即可;

如果压根就没有FEDERATED这一行,说明你的mysql就没有安装这个引擎,这就不能愉快的玩耍了,最好去找你们家运维搞定吧,因为接下来的动作比较大,而且我也不知道怎么搞;

解释:通过FEDERATED引擎创建的表只是在本地有表定义文件,数据文件则存在于远程数据库中,通过这个引擎可以实现类似Oracle 下DBLINK的远程数据访问功能。就是说,这种建表方式只会在数据库A中创建一个表B的表结构文件,表的索引、数据等文件还是在机器B上的数据库B中,相当于只是在数据库A中创建了表B的一个快捷方式。

于是,蛋就不疼了。。

 

需要注意的几点:

1. 本地的表结构必须与远程的完全一样。

2.远程数据库目前仅限MySQL

3.不支持事务

4.不支持表结构修改

 

引用:http://blog.csdn.net/u012109105/article/details/38515293

分享到:
评论

相关推荐

    mysql中的跨库关联查询方法

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

    sqlserver数据库关联mysql

    在SQL Server数据库中关联并操作MySQL数据库是一种跨数据库平台的数据集成技术,这使得用户能够从SQL Server环境中查询、更新或管理MySQL中的数据。本篇文档将深入探讨这一主题,包括如何建立连接、配置ODBC驱动以及...

    VC++2013运行时库

    因此,当开发者在Windows上构建MySQL应用或者使用Python的MySQL连接器(如`pymysql`或`mysql-connector-python`)时,也可能需要确保目标系统上装有VC++2013运行时库。 **总结** VC++2013运行时库是Windows上运行...

    库存上锁(文件锁+redis.pdf

    文件锁是操作系统提供的本地文件级别的锁定机制,它可以在同一台机器上的不同进程之间实现互斥访问。在库存上锁的过程中,每个SKU(库存单元)对应的库存更新操作会被一个文件锁保护,确保同一时间内只有一个进程能...

    基于C++&QT+MySQl+OpenCV的车牌识别搭建停车场管理系统.zip

    【QT】是Qt Company提供的一款跨平台的C++图形库,用于构建用户界面。在本项目中,QT被用来设计和实现用户友好的交互界面,包括各种控件、窗口和菜单,使用户可以方便地操作和监控停车场的运行状态。 【MySQL】是...

    Python库 | morm-1.1.4-py3-none-any.whl

    在实际开发中,ORM库如SQLAlchemy和Peewee等,能够提供模型定义、查询构建、事务处理等功能,使得Python应用程序能够更方便地与MySQL、PostgreSQL、SQLite等数据库进行交互。然而,要确定“morm”库的确切功能和用法...

    基于Android的护士学习与模拟考试系统_移动端设计_后台管理_MySQL数据库设计.zip

    在这个项目中,数据库可能包含用户信息表、课程资料表、试题库表、考试记录表等,每个表都有相应的字段和关联关系,以支持高效的数据查询和操作。数据库设计需要遵循范式理论,保证数据的一致性和完整性。 5. **...

    [专升本(国家)考试密押题库与答案解析]专升本大学语文模拟153.docx

    针对给定文件中的试题库,可以建立一个数据库来高效存储和查询题目信息。 - **技术实现**:可以使用MySQL或MongoDB等数据库系统来存储和管理试题数据。例如,创建一个包含题目ID、题目内容、选项、答案等字段的表格...

    2018 PHP 最新面试题

    - 如果必须进行跨表查询,则应确保所有关联的字段都有索引。 - 使用EXPLAIN命令检查查询计划,并根据结果调整索引策略。 - 在设计阶段考虑数据冗余,适当引入冗余字段以减少查询复杂度。 7. **索引应用** - **...

    etl数据整合模拟卷.doc

    Unix 域套接字连接则是在同一台机器上的进程间通信,速度更快但只能本地使用。 6. **数据装载方式** 数据装载通常包括完整装载(Full Load)、增量装载(Incremental Load)和更改数据捕获(Change Data Capture)...

    基于python+Django知识图谱的医疗问答系统源码数据库论文.doc

    Python的灵活性和强大的科学计算库如NLTK(自然语言工具包)和Scikit-learn(机器学习库)使得处理文本信息和构建问答模型变得可能。 2. **Django框架** Django是一个开源的Web框架,遵循MVT(Model-View-Template...

    大数据核心技术分析.pptx

    跨设备识别可能需要复杂的机器学习算法,如XGBoost,以识别不同设备间的关联用户。 总的来说,大数据技术是多元化且复杂的,涵盖存储、计算、分析等多个层面。理解并优化这些技术是构建高效、可靠的大数据解决方案...

    人工智能-项目实践-检索系统-古医药检索与应用系统

    在这个项目实践中,Java作为主要的开发语言,以其强大的跨平台能力和丰富的库资源,为系统的构建提供了坚实的基础。Java的Spring Boot框架可以简化开发过程,提高系统的可维护性和扩展性。同时,数据库技术,如MySQL...

    Oracle GoldenGate 19c 白皮书.pdf

    此版本支持Oracle Database 19c和MySQL 8.0等最新数据库版本,以及多种跨字节环境的远程集成抽取,确保在不同硬件平台上数据的一致性。此外,它还引入了对Oracle Key Vault的集成,实现集中式密钥管理,增强了数据...

    java爬虫完整代码

    Java提供了诸如Weka这样的机器学习库,以及Apache Mahout,可以进行分类、聚类、关联规则等分析。 9. **异常处理和日志记录**:在爬虫运行过程中,错误处理和日志记录至关重要。使用try-catch语句块捕获异常,结合...

    数据分析师的完整流程与知识结构体系.docx

    SQL查询是基础技能,从简单的单表查询到复杂的跨表联接,甚至SQL优化都是提高效率的手段。同时,理解业务需求,如“销售额”字段的定义,能够确保提取的数据准确反映业务情况。 4. 数据挖掘: 数据挖掘是通过算法...

    yuan_cs-yuan_chat-master_java_

    - **SQL**:SQL(结构化查询语言)支持与关系型数据库如MySQL、Oracle、SQL Server等进行交互,用户可以直接执行SQL查询来获取数据。 - **CSV**:逗号分隔值文件格式,常见于数据导入导出,便于不同系统间的数据...

    2021-2022计算机二级等级考试试题及答案No.5044.docx

    8. **MySQL服务器类型**:安装MySQL时,可以选择开发者机器、服务器机器或专用MySQL服务器等类型,以适应不同的性能需求。 9. **并发操作**:并发操作如果不加以控制,可能会导致数据不一致问题,例如脏读、不可...

Global site tag (gtag.js) - Google Analytics