mysql的存储引擎之FEDERATED

原创
2019/05/16 22:42
阅读数 406

mysql的存储引起

 MySQL数据库有多种存储引擎:比如:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE等等,最常见的也就是MyISAM和InnoDB了。不过我不说常用的就说大家忽视的不常用的,我介绍的是 FEDERATED,那些百度能搜索出来的东西,这么说也不对,好像这个百度也能搜索出来。😅😅😅 这样能展示能力吗?我也不确定,反正我就说这个,你爱咋地咋地?我就我,一个无可救药的我。

FEDERATED 存储引擎

FEDERATED 引擎和其他引擎的不同在于表格结构相同,但是物理数据存储实在远程。换言之就是你本地的数据库只由表结构不存储数据,数据在其他数据库商。

一个FEDERATED表有以下两部分组成。

  • 本地的表结构信息
  • 远程的数据存储

创建FEDERATED表

第一步远程表建立:

CREATE TABLE test_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=MyISAM
DEFAULT CHARSET=utf8mb4;

第二部federated表建立

CREATE TABLE federated_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=utf8mb4
CONNECTION='mysql://fed_user:fed_password@remote_host:9306/federated/federated';
  • fed_user 远程数据库的用户名
  • fed_password远程数据库的密码
  • remote_host 远程数据库地址
  • federated 远程database
  • federated远程表

注:远程表一定要和本地表结构一致

使用方面

其实这个使用方面还是比较少的,因为大家基本上都不知道吗。那么这个可以用在那些方面呢?

  • 把多个库的数据表合并到一个里面

好像只有一个用法,这样使用的好处,我们仅仅需要使用一个数据就可以处理多个数据库的表问题。

本期完毕,休息休息休息一下。。。。

FEDERATED引擎官方说明

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部