MySQL实现跨服务器查询

https://blog.csdn.net/LYK_for_dba/article/details/78180444

mysql> create database lianxi;

mysql> use lianxi

mysql> CREATE TABLE tab_test_fed (

id     int(20) NOT NULL auto_increment,

name   varchar(32) NOT NULL default '',

PRIMARY KEY (id)

) ENGINE=FEDERATED connection = 'mysql://root:123@192.168.41.197:3306/db_fed/tab_test';

一个跨库复杂查询的SQL优化的案例

https://blog.csdn.net/waste_land_wolf/article/details/76419207

SQL优化思路

想要优化一个SQL,一般来说就是先看执行计划,观察是否尽可能用到索引,
同时要关注预计扫描的行数,以及是否产生了临时表(Using temporary) 
或者 是否需要进行排序(Using filesort),想办法消除这些情况。
更进一步的优化策略则可能需要调整程序代码逻辑,甚至技术架构或者业务需求,
这个动作比较大,一般非核心系统上的核心问题,不会这么大动干戈,绝大多数情况,

还是需要靠DBA尽可能发挥聪明才智来解决。

优化思考
首先观察这个查询SQL语句,貌似复杂,其实有规律可寻。我们分成三部分来看,即select部分,from部分和查询条件部分。
其中比较复杂的是select部分,很多字段是通过子查询,计算和联合获得的。
其次通过分步测试,发现加上“已出库成本outbound_cost”和“实际出库数量outbound_quantity”这两个字段查询比较慢,
再对这两个字段的子查询分析,如果去年其中的查询条件cn=a.cn,查询速度可以大大提高。但是这样查出来的数据经过
计算是错误的。据此我怀疑是不是因为a的定义是在子查询外面两层,导致查询速度降低。于是我决定将这两个字段的子查询语句
做成两个view,再从这两个view里查询。这样,子查询就不用到外层去查询a表和a表的cn字段去对比,数据也不会出错。
改完这块之后,查询速度果然提高了近10倍,查询耗时缩短为39秒左右。但是这离客户要求的3-4秒还很远。
按照老叶(mySQL培训机构知数堂的创始人,国内著名mySQL专家)的提示,查看了下执行计划,发现所有表中都没有建索引。按照老叶的指导,建立了一堆单一和联合索引。再试,2.9秒!速度差不多又提高了15倍。

MySQL FEDERATED引擎使用示例, 类似Oracle DBLINK

https://www.cnblogs.com/austinspark-jessylu/p/7117640.html

两不同服务器上的mysql跨库查询

https://blog.csdn.net/qq_26517369/article/details/53337100

mysql 跨库查询问题的更多相关文章

  1. MySQL跨库查询例子

    库1 gxjob 库2 funshixi SELECT a.`company_id`,b.`companyname` FROM `gxjob`.`qj_activity_thousands_of_sc ...

  2. springboot整合mybatis进行跨库查询

    业务场景: 当一个公司大了之后就会将各种业务进行分开,最简单的就是例如:公司的机构表,那么就会将他们分成开来,那么就会在一个实例中, 如果要获取相关信息就会去关联这张表进行关联查询 从而导致了跨库关联 ...

  3. 如何使用SQL SERVER数据库跨库查询

    SQL Server中内置了数据库跨库查询功能,下面简要介绍一下SQL Server跨库查询.首先打开数据源码:OPENDATASOURCE不使用链接的服务器名,而提供特殊的连接信息,并将其作为四部分 ...

  4. SqlServer跨库查询

    由于业务的拆分,数据库拆分为两种作用: 汇总数据库(Master,头节点数据库), 子节点数据库(Compute Node,计算子节点数据库) 这样,就设计到子节点访问头节点数据库中的某张汇总表,这种 ...

  5. ACCESS-如何多数据库查询(跨库查询)

    测试通过:ACCESSselect * from F:\MYk.mdb.tablename说明:1.查询语句2.来原于哪(没有密码是个路径)3.查询的表名 ====================== ...

  6. Access数据库跨库查询及记录集区分

    医疗设备软件一般都是单机软件,如果是Windows平台,常会选择Access数据库存储结构化数据,因为他轻量,便于部署.然而随着医疗信息化的发展,医生希望对多台单机设备的数据进行管理,采用网络数据库当 ...

  7. EF 跨库查询

    原因:最近公司项目,遇到一个ef跨库查询的问题.(只是跨库,并不是跨服务器哈) 主要我们的一些数据,譬如地址,城市需要查询公共资料库. 但是本身我的程序设计采用的是ef框架的.因此为这事花费了1天时间 ...

  8. SQL Server 跨库查询

    1. 开启Ad Hoc Distributed Queries组件,在sql查询编辑器中执行如下语句: reconfigure reconfigure 2. 跨库查询操作 select * from ...

  9. 跨库查询(OpenDataSource)与链接服务器(Linking Server)

    一:跨库查询 Openrowset/opendatasource() is an ad-hoc method to access remote server's data. So, if you on ...

随机推荐

  1. 浅谈virtualenv(虚拟环境)

    简介 virtualenv为应用提供了隔离的Python运行环境,解决了不同应用间多版本的冲突问题. 例如: 如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的P ...

  2. Android集成百度地图SDK

    本Demo中所含功能 1:定位,显示当前位置 2:地图多覆盖物(地图描点.弹出该点的具体信息) 3:坐标地址互相换算 4:POI兴趣点检索 5:线路查询(步行,驾车,公交) 6:绘制线路(OpenGL ...

  3. PHP 基础篇 - PHP 正则官方文档汇总

    一.PCRE 正则语法 下面是 PHP 的 PCRE 正则语法(模式语法)相关文档,详情请查阅相关链接: 简介 分隔符 元字符 转义序列(反斜线) Unicode字符属性 锚 句点 字符类(方括号) ...

  4. C语言字符串/数组去重

    输入: hello 输出: helo 第一种实现: 不新开数组, 也就是原地去重. #include <stdio.h> #include <string.h> void re ...

  5. Python遇到SyntaxError: Non-ASCII character '\xe5' in file D:\eclipseworkspace\test\test_urllib2.py on line2

    写Python时遇到SyntaxError: Non-ASCII character '\xe5' in file D:\eclipseworkspace\test\test_urllib2.py o ...

  6. 关于Softnet的加密。方式是使用API函数。。关键是开发号

    首先是获取 开发号. 类似于这个玩意 http://www.cnblogs.com/wenluderen/p/4853563.html 这个帖子里面有介绍关于开发号的完整资料. ××××××××××× ...

  7. [Python] logging.logger

    <1>. mylogger = logging.getLogger("abc") logging.debug()/logging.info()/logging.warn ...

  8. boost::any 用法

    boost::any可以存放任何类型的C++类型,也可以是用户自定义的类型.非常方便,可以很方便的满足在运行过程中判断数据类型,从而进行相关的操作. 函数原型: // In header: <b ...

  9. python全栈开发从入门到放弃之迭代器生成器

    1.python中的for循环 l = [1,2,3,4,5,6] for i in l: #根据索引取值 print(i) 输出结果: 1 2 3 4 5 6 2.iterable  可迭代的 可迭 ...

  10. Mac OS OpenVpN 连接设置(转)

    下文介绍Mac OS连接使用OpenVPN方法教程,使用的软件是免费开源的Tunnelblick,当然也有其它连接软件,比如Viscosity,不过这个是付费的,还是前面的用的多. 1.下载安装Tun ...