您的当前位置:首页正文

Mysql存储引擎之Merge存储引擎的介绍

2020-11-09 来源:汇智旅游网

MERGE 存储引擎,在 MySQL 用户手册中也提到了,也被大家认识为 MRG_MyISAM 引擎。Why?因为 MERGE 存储引擎可以简单的理解为其功能就是实现了对结构相同的 MyISAM 表, 通过一些特殊的包装对外提供一个单一的访问入口,以达到减小应用的复杂度的目的。要创建MERGE 表,不仅仅基表的结构要完全一致,包括字段的顺序,基表的索引也必须完全一致。

MERGE 表本身并不存储数据,仅仅只是为多个基表提供一个同意的存储入口。所以在创建 MERGE 表的时候, MySQL 只会生成两个较小的文件,一个是.frm 的结构定义文件,还有一个.MRG 文件,用于存放参与 MERGE 的表的名称(包括所属数据库 schema)。之所以需要有所属数据库的 schema,是因为 MERGE 表不仅可以实现将 Merge 同一个数据库中的表,还可以Merge 不同数据库中的表,只要是权限允许,并且在同一个 mysqld 下面,就可以进行 Merge。MERGE 表在被创建之后,仍然可以通过相关命令来更改底层的基表。

MERGE 表不仅可以提供读取服务,也可以提供写入服务。要让 MERGE 表提供可 INSERT服务,必须在在表被创建的时候就指明 INSERT 数据要被写入哪一个基表,可以通过insert_method 参数来控制。如果没有指定该参数,任何尝试往 MERGE 表中 INSERT 数据的操作,都会出错。此外,无法通过 MERGE 表直接使用基表上面的全文索引,要使用全文索引 ,必须通过基表本身的存取才能实现。

显示全文