首页 > 数据库 >MySQL 跨库之间联合查询的方法

MySQL 跨库之间联合查询的方法

时间:2024-03-15 14:24:18浏览次数:23  
标签:ip MySQL FEDERATED 查询 dblink 跨库 date

MySQL 跨库之间联合查询的方法


背景

随着业务上云的需要,
公司里面有阿里云上面的测试环境.
也有公司内的测试环境.
但是阿里云上面的机器和公司内的机器存在一些差异.
所以一直想有一个归集数据的过程.

能够在一张图标里面关联 公司内和阿里云上面的一些数据信息
实现类似于混合云的简单比较.

基于此了一些办法

跟Oracle和SQLServer类似, MySQL数据库也有dblink
他的dblink 其实是 FEDERATED 引擎.
一般情况下可以通过 show engines ; 的命令进行查看
FEDERATED

+------------+---------+------------------+--------------+------+------------+
| Engine     | Support | Comment          | Transactions | XA   | Savepoints |
| FEDERATED    YES     | Federated MySQL  | NO           | NO   | NO   

可以看到这个存储引擎不支持 事务 XA 以及保存点.                             

开启方式

MySQL是默认不开启 FEDERATED
开启方式比较简单
需要再 /etc/my.cnf
中的mysqld 的配置节下面新增:
federated
然后重启一下服务就可以了. 

创建表

因为公司内网可以访问互联网. 
互联网没法访问公司内网.
所以想法是在公司内网, 增加对互联网的dblink 
来合并查询

创建表的语法为:
CREATE TABLE sustartuptimealiyun (
	ip VARCHAR ( 20 ),
	time VARCHAR ( 20 ),
date VARCHAR ( 20 )) ENGINE = FEDERATED CONNECTION =
'mysql://username:password@aliyunip:port/databasename/sustartuptime'

联合查询

SELECT
	ip,
	round( avg( time ), 2 ) 
FROM
	test.startuptime 
WHERE
	LEFT ( date, 8 ) >= ( date_format( curdate(), '%Y%m%d' ) - 1 ) 
GROUP BY
	ip 
UNION ALL
SELECT
	ip,
	round( avg( time ), 2 ) 
FROM
	test.startuptimealiyun 
WHERE
	LEFT ( date, 8 ) >= ( date_format( curdate(), '%Y%m%d' ) - 1 ) 
GROUP BY
	ip 

标签:ip,MySQL,FEDERATED,查询,dblink,跨库,date
From: https://www.cnblogs.com/jinanxiaolaohu/p/18075286

相关文章

  • 聊一聊 MySQL 的 InnoDB 存储引擎以及三种日志
    楔子上一篇文章我们介绍了MySQL的基本架构,这里再来回顾一下。整个架构还是很好理解的,我们说MySQL分为Server层和存储引擎层。其中Server层包含了MySQL的大多数核心服务功能,而存储引擎层则负责提供数据的存储和读取,并且是插件式的,一个Server层支持不同的存储引擎层......
  • MySQL默认值NULL、空值、Empty String的区别,哪个更好?
    一套完美的系统,离不开数据库的设计。当我们数据库添加一个新的字段的时候,你会设置默认值为NULL,空值、还是EmptyString呢?首先我们来看下这三种值的介绍空值,空白,即什么都不填,等同于NULL(设计表结构时保存空值会自动变成NULL),当然也可以手动输入默认值。NULL。EmptyString,空字......
  • php多进程引发mysql查询问题
    1、报错:Packetsoutoforder.Expected1received56.Packetsize=3159346开始配置my.cnf的max_allowed_packet=2G可是没什么卵用原因:个人判断是因在laravelmysql的连接是随着php销毁而销毁;所以会保持数据库的连接会话能重复使用所以要配置database.php  配置文件opt......
  • mysql:导入数据
    第一步:导入向导第二部第二步:选择数据格式点击下一步下一步:选择要导入哪一个下一步:点击开始点击完成即可,点击sheet1,就有了......
  • mysql语句
    1.获取表中全部字段selectGROUP_CONCAT(COLUMN_NAME)frominformation_schema.COLUMNSwheretable_name='表名'andtable_schema='库名';2.数据表字段总数SELECTcount(1)frominformation_schema.COLUMNSWHEREtable_schema='apollo'andtable_na......
  • MySQL-Utilities使用
    MySQLUtilities介绍MySQLUtilities提供一组命令行工具用于维护和管理MySQL服务器,包括:管理工具(克隆、复制、比较、差异、导出、导入)复制工具(安装、配置)一般工具(磁盘使用情况、冗余索引、搜索元数据)安装MySQL-Utilitieswgethttps://downloads.mysql.com/arch......
  • Jemter查询数据库
    1、导入mysql驱动在mysql官网下载mysql驱动https://www.mysql.com/;参考博客,https://blog.csdn.net/Li_Ya_Fei/article/details/104583417,将下载下来的jar包存放在apache-jmeter-5.3\lib\ext下后重启jemter。2、创建JDBCConnectionConfiguration  3、创建JDBCrequest......
  • Kibana导出查询结果
    查询Exchange服务器上的安全事件日志,通过攻击源客户端计算机名称,获取攻击源IP  Visualize-新建-Datatable-索引定义好过滤条件后,根据访问源IP进行分组,并统计访问次数,然后导出结果 定义好过滤条件后,导出被爆破的用户名,并统计次数,然后导出结果 通过直方图统计......
  • MySQL解决幻读(2)
    MySQL的默认隔离级别(REPEATABLE-READ)如何解决脏读和不可重复度脏读读取到未提交的数据不可重复度两次读取的数据不一致,侧重与数据的更新幻读两次读取的数据不一致,侧重数据的新增和删除解决根据当前读或MVCC来解决脏读和不可重复读的当前读:加锁,在读取时会将所有数据加......
  • NOT IN子查询中出现NULL值对结果的影响你注意到了吗
    前言开发人员写的SQL语句中经常会用到in,exists,notin,notexists这类子查询,通常,含in、exists的子查询称为半连接(semijoin),含notin、notexists的子查询被称之为反连接,经常会有技术人员来评论in与exists效率孰高孰低的问题,我在SQL优化工作中也经常对这类子查询做优化改写,比如半......