首頁 > 資料庫 > mysql教程 > MySQL Merge表的使用注意事项和优点介绍

MySQL Merge表的使用注意事项和优点介绍

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-07 17:25:19
原創
1226 人瀏覽過

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

在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表的查询结果不变。

linux

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
怎麼用php+mysql做動態資料表 , 急! ! !
來自於 1970-01-01 08:00:00
0
0
0
mysql - 標籤表的一些問題
來自於 1970-01-01 08:00:00
0
0
0
如何在 MySQL 中傳回資料透視表輸出?
來自於 1970-01-01 08:00:00
0
0
0
如何在MySQL中傳回透視表的輸出?
來自於 1970-01-01 08:00:00
0
0
0
在 MySQL 表中新增外鍵列:逐步指南
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板