在Mysql数据库中,Mysql Merge表有点类似于视图。下面就让我们来一起了解一下Mysql Merge表都有哪些优点,希望对您能有所帮助。

Mysql Merge表的优点: A: 分离静态的和动态的数据 B:利用结构接近的的数据来优化查询 C: 查询时可以访问更少的数据 D:更容易维护大数据集 E: 可以通过修改.mrg文件来修改Merge表,当然也可以用alter进行修改,修改后要通过FLUSH TABLES刷新表缓存,此法可以动态增加减少子表 创建方法,例: mysql>CREATE TABLE t1(a INT NOT NULL PRIMARY KEY)ENGINE=MyISAM; mysql>CREATE TABLE t2(a INT NOT NULL PRIMARY KEY)ENGINE=MyISAM; mysql>CREATE TABLE mrg(a INT NOT NULL PRIMARY KEY)ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST; 下面添加测试数据 mysql>INSERT INTO t1(a) VALUES(1),(2); mysql>INSERT INTO t2(a)VALUES(1),(2); 查询一下看看结果 mysql>SELECT a FROM mrg; 结果会显示出t1,t2两个表中的数据 +——+ | a | +——+ | 1| | 2| | 1| | 2| +——+

对于merge表,需要注意的是 1。每个子表的结构必须一致,主表和子表的结构需要一致, 2。每个子表的索引在merge表中都会存在,所以在merge表中不能根据该索引进行唯一性检索。 3 子表需要是MyISAM引擎 4 REPLACE在merge表中不会工作 5 AUTO_INCREMENT 不会按照你所期望的方式工作。

创建Mysql Merge表的参数 INSERT_METHOD有几个参数 。 LAST 如果你执行insert 指令来操作merge表时,插入操作会把数据添加到***一个子表中。FIRST 同理,执行插入数据时会把数据添加到***个子表中。 比如本例,对merge表执行插入操作 mysql>INSERT INTO mrg(a)VALUES(18); 查询一下 mysql>SELECT a FROM t2; 结果你会发现18出现在t2表中。 ————————————————————— 如果你对mrg表或者子表进行了DROP操作,那将有可能会产生些不可预知的情况。 如果删除mrg表,那么各个子表间将不会有联系。但是如果删除其中的任一子表,对于GNU/LINUX来说,merge表结构及数据仍然存在。 mysql>DROP TABLE t1,t2; mysql>SELECT a FROM mrg; 结果你会发现mrg表的查询结果不变。

【编辑推荐】

教您一个MySQL源码包安装方法

随机获取Mysql数据的方法

根据Mysql表备份

MySQL Show语句用法介绍

Mysql清空表的实现方法