• mysql 跨库查询问题


    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

  • 相关阅读:
    [iOS]UIDynamicAnimator动画
    [iOS]被忽略的main函数
    [iOS]app的生命周期
    vue 封装http请求时错误信息提示使用element-ui message,只提示一次
    angular8 Vue 导出excel文件
    python3 tornado api + angular8 + nginx 跨域问题
    ubutu tornado python3.7.5 nginx supervisor 部署web api
    angular cli 反向代理实现跨域
    angular8自定义管道、指令以及获取dom值
    angular cli 使用echarts
  • 原文地址:https://www.cnblogs.com/chengjun/p/9305499.html
Copyright © 2020-2023  润新知