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远程表
注:远程表一定要和本地表结构一致
使用方面
其实这个使用方面还是比较少的,因为大家基本上都不知道吗。那么这个可以用在那些方面呢?
- 把多个库的数据表合并到一个里面
好像只有一个用法,这样使用的好处,我们仅仅需要使用一个数据就可以处理多个数据库的表问题。
本期完毕,休息休息休息一下。。。。