一、使用场景

1、需要做关联查询的表分布在不同的实例。这时可以安装个MariaDB,表引擎使用Spider,作为提供联表查询的中间件。

2、其它,待完善、更新……

二、中间件MariaDB安装

1、添加 MariaDB yum 仓库#vi /etc/yum.repos.d/MariaDB.repo

[mariadb]

name = MariaDB

baseurl = http://yum.mariadb.org/10.2/centos7-amd64

gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

gpgcheck=1

2、安装 MariaDB#yum install MariaDB-server MariaDB-client -y

3、启动数据库服务#systemctl start mariadb

4、添加自启动服务#systemctl enable mariadb

5、安全配置MariaDB#mysql_secure_installation

6、修改字符集#vi /etc/my.cnf.d/server.cnf

[mysqld]

character-set-server=utf8#systemctl restart mariadb

7、安装Spider引擎#mysql  < /usr/share/mysql/install_spider.sql

#mysql

MariaDB [(none)]> select * from information_schema.engines where engine='SPIDER';

三、功能验证

1、拓扑图

2、准备工作

(1)、后端DB(MySQL1 and MySQL2)对MySQL Spider中间件授权grant select on *.* to spider@'10.8.3.245' identified by 'spider';

(2)、创建MySQL Spider中间件到后端DB的连接配置create server db11_account foreign data wrapper mysql options(host '10.8.2.201', database 'account', user 'spider', password 'spider', port 3306);

create server db13_activity foreign data wrapper mysql options(host '10.8.2.203', database 'activity', user 'spider', password 'spider', port 3306);

3、测试跨实例联表查询

(1)、后端DB创建物理表

MySQL1建表account.test1:mysql> create table account.test1 (  id int,  username varchar(20),  address varchar(128),  primary key (id),  key (username)  ) engine=InnoDB default charset=utf8 comment 'test1';

MySQL2建表activity.test2:mysql> create table activity.test2 (  id int,  username2 varchar(20),  address2 varchar(128),  primary key (id),  key (username2)  ) engine=InnoDB default charset=utf8 comment 'test2';

(2)、MySQL Spider中间件创建远程后端DB表的连接定义

account.test1对应的表连接定义:MariaDB [db11_account]> create table test1(  id int,  username varchar(20),  address varchar(128),  primary key (id),  key (username)  ) engine=spider default charset=utf8 comment 'server "db11"';

activity.test2对应的表连接定义:MariaDB [db13_activity]> create table test2 (  id int,  username2 varchar(20),  address2 varchar(128),  primary key (id),  key (username2)  ) engine=spider default charset=utf8 comment 'server "db13"';

(3)、在后端DB插入的数据,验证在Spider中间件中是否可以查询出来

后端db11插入数据:mysql> insert into test1 values(1,'username1','sz');

后端db13插入数据:mysql> insert into test2 values(1,'username2','bj');

MySQL Spider中间件验证查询结果:

查询test1数据MariaDB [db11_account]> select * from test1;

查询test2数据MariaDB [db13_activity]> select * from test2;

联表查询数据MariaDB [db11_account]> select * from test1 as a left join db13_activity.test2 as b on a.id=b.id;

参考资料:https://www.jianshu.com/p/b96a8c90689a

spider mysql_MySQL中间件Spider引擎初探相关推荐

  1. scrapy下载中间件(downloader middleware)和蜘蛛中间件(spider middleware)

    scrapy组件 首先我们看下scrapy官网提供的新结构图,乍一看这画的是啥啊,这需要你慢慢的理解其原理就很容易看懂了,这些都是一个通用爬虫框架该具有的一些基本组件.上一篇博客说了项目管道(也就是图 ...

  2. 【原创】360购物小蜜的背后:探推荐引擎初探

    360购物小蜜的背后:探推荐引擎初探 作者:jxy (360电商技术组) 相信经常上网的小伙伴,已经习惯了网站为大家做出的各种个性化推荐:京东会推荐你喜欢的电子设备,淘宝会推荐你爱吃的零食,爱奇艺为你 ...

  3. MariaDB Spider分库分表引擎调研

    视频地址:http://edu.51cto.com/index.php?do=lesson&id=56128

  4. python绿色版spider的idle_Python-Scrapy Spider没有收到spider_idle信号

    我有蜘蛛使用meta处理链中的请求,以产生具有来自多个请求的数据的项目. 我用来生成请求的方式是在首次调用parse函数时启动所有请求,但是,如果我有太多链接无法请求,则并不是所有请求都已计划好,最终 ...

  5. javascript清除map所占内存_【原创.54期】 JavaScript的V8引擎初探

    本文主要就下面三块内容展开 栈和堆空间 垃圾回收 解释器和编译器 一.栈空间和堆空间 先回顾下基本知识 1.静态语言就是强类型?二者的关系 (1-1)静态语言, 使用前 要确定数据类型 (1-2)动态 ...

  6. 探索推荐引擎内部的秘密,第 1 部分: 推荐引擎初探

    在用户对自己需求相对明确的时候,用搜索引擎很方便的通过关键字搜索很快的找到自己需要的信息.但搜索引擎并不能完全满足用户对信息发现的需求,那是因为在很多情况下,用户其实并不明确自己的需要,或者他们的需求 ...

  7. MySQL - 存储引擎初探

    文章目录 生猛干货 存储引擎概述 实例层 物理层 内存和物理结构 Buffer Pool Redo log 5.7新版本特性 8.0 新版本特性 InnoDB VS MyISAM 功能对比 事务支持 ...

  8. 深入出不来nodejs源码-V8引擎初探

    原本打算是把node源码看得差不多了再去深入V8的,但是这两者基本上没办法分开讲. 与express是基于node的封装不同,node是基于V8的一个应用,源码内容已经渗透到V8层面,因此这章简述一下 ...

  9. Archive引擎初探

    今天研究了一下Archive引擎,发现其唯一的优点:在于节省磁盘空间,与Myisam引擎相比,节省近13倍多的磁盘空间,占用的磁盘空间少了,I/O占用也随之变小,不过,个人认为,在磁盘这么廉价的今天, ...

最新文章

  1. 几种任务调度的 Java 实现方法与比较
  2. 面试再被问到 ConcurrentHashMap,把这篇文章甩给他!
  3. Java虚拟机学习 - 类加载器(ClassLoader)
  4. grid - 使用相同的名称命名网格线和设置网格项目位置
  5. 青少年蓝桥杯_2020_steam考试_中级组_第五题
  6. python 打包 无需安装运行环境_无需Python环境,小白也可以运行的抢票程序
  7. MySQL 磁盘空间不够用 方案_Mysql数据磁盘不足,不停机扩容方案
  8. 有多个重载参数pow_随时随地想充就充,同时最多能给三部手机充电的南卡无线充电宝POW-1体验...
  9. uint8_t / uint16_t / uint32_t /uint64_t  有什么区别?
  10. linux该专接本还是工作_2020河北专接本报考录取比例相差最大专业TOP榜,出乎意料吗?...
  11. hbase集群 数据写入_HBase架构与原理详解
  12. 新房装修,家里WiFi怎么弄?
  13. python画六边形的代码_跟我学python(1)——turtle
  14. (译)cocos2d精灵教程:第三部分
  15. 面试官:换人!赶快换人!连CopyOnWriteArrayList都没听过!确实没听过
  16. PyTorch入门(一)数据集的一些基础操作
  17. 加载JDBC驱动程序
  18. php eclipse 插件下载地址,Eclipse插件-PHPEclipse插件v1.2.3 最新版下载__飞翔下载
  19. Unity创建位图字体
  20. 方正小标宋简体 官方标准版

热门文章

  1. 20英里还是60英里?
  2. 主成分分析(PCA)核心思想
  3. 无线电流互感器监测电机设备的运行(OEE,开关机率)工作状态
  4. HC-SR04超声波模块测量距离出现跳变问题且跳变步长恰好为1.7cm
  5. 微信公众号授权给第三方平台时报“没有绑定公众号”
  6. Zuul多路径访问时报404问题
  7. 发那科机器人示教盒复位键是哪个_发那科示教器维修 大连发那科机器人伺服放大器维修 伺服电机维修...
  8. 仿 qq登录界面 php,js仿腾讯QQ的web登陆界面
  9. PLC网关 工业PLC远程控制监控
  10. jQuery名字滚动老虎机抽奖