MySQL 是全球最受欢迎的开源数据库之一,引擎有INNODB、TokuDB、sphinx、MyRocks、myisam、maria、memeory、archive、federated等等。其中:

       INNODB,是mysql最流行的支持全事务的引擎,数据本身是用B-TREE来组织,即是庞大的B-TREE索引,所以在这点上,当数据量过大时,写入速度就会逐渐降低,因为每次写入都需要用一次IO来做索引树的重排;

       TokuDB,拥有出色的数据压缩功能,如果您的数据写多读少,而且数据量比较大,强烈建议使用TokuDB,以节省空间成本;

       sphinx,高性能SQL全文检索引擎,适合知识库的查询、检索

       MyRocks,facebook MySQL的主分支,数据压缩,不支持分区,order by慢

       myisam,mysql5.1之前的默认存储引擎

       maria,基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。 过去一年中,大型互联网用户以及Linux发行商纷纷抛弃MySQL,转投MariaDB阵营。MariaDB是目前最受关注的MySQL数据库衍生版,也被视为开源数据库MySQL的替代品。

       memeory,数据全部放在内存中,速度比使用B-tree索引快

       archive,这个引擎只允许插入和查询,不允许修改和删除。相当于拥有只读权限和写入权限。

       federated一个专门针对远程数据库的实现,只是在本地有表定义文件,数据文件则存在于远程数据库中。与oracle 中的数据链Dblink类似

       (吹了这么多牛皮,笔者也不大懂,我们还是看正文怎么操作federated吧)

1、查看引擎是否安装

show engines; 

mysql国外研究现状 有关mysql的外文文献_mysql国外研究现状

没有的话,安装Federated,如果一开始安装mysql时没有安装,那需要重新安装mysql,安装完后修改配置文件,重启。


mysql> install plugin federated soname 'ha_federated.so';

 

2、使用Federated

Federated为YES之后,使用Federated建表语句如下: 

CREATE TABLE (......) ENGINE =FEDERATED CONNECTION='mysql://[name]:[pass]@[location]:[port]/[db-name]/[table-name]' 

name :mysql远程数据库的用户名   ;  

pass : mysql 远程数据库的密码  :

location : 远程数据库的ip

port: 远程数据库的端口号

db-name: 远程数据库的数据库名

table-name: 远程数据库的表名

创建的表名和远程访问的表名可以不同,之所以在这里创建表,是因为这是一个虚拟的表,创建的本地的数据库库表只有数据结构,没有内容,当你查询、修改时操作的还是远程数据库的库表