来源:http://www.linuxidc.com/Linux/2012-08/67797.htm

在Mysql数据库中,Merge表有点类似于视图。mysql的merge引擎类型允许你把许多结构相同的表合并为一个表。之后,你可以执行查询,从多个表返回的结果就像从一个表返回的结果一样。每一个合并的表必须有完全相同表的定义和结构。

Mysql Merge表的优点:
A. 分离静态的和动态的数据
B. 利用结构接近的的数据来优化查询
C. 查询时可以访问更少的数据
D. 更容易维护大数据集
E. 可以通过修改.mrg文件来修改Merge表,当然也可以用alter进行修改,修改后要通过FLUSH TABLES刷新表缓存,此法可以动态增加减少子表

merge表存储引擎在如下这种使用场合会最为有用:
如果需要把日志记录不停的录入MySQL数据库,并且每天、每周或者每个月都创建一个单一的表,而且要制作来自多个表的合计查询,MERGE表这时会非常有效。然而,这项功能有局限性。你只能合并MyISAM表而且必须严格遵守相同的表定义的限制。虽然这看起来好像是一个大问题,但是,如果你使用另外一种表类型(例如InnoDB),这种合并可能就不需要.
下面定义如下几个表:

基本表:
CREATE TABLE TEST_MERGE_1(
ID INT(5) NOT NULL,
VALUE VARCHAR(100) NOT NULL,
PRIMARY KEY(ID)
);
CREATE TABLE TEST_MERGE_2(
ID INT(5) NOT NULL,
VALUE VARCHAR(100) NOT NULL,
PRIMARY KEY(ID)
);
MERGE表:
CREATE TABLE TEST_MERGE(
ID INT(5) NOT NULL,
VALUE VARCHAR(100) NOT NULL,
PRIMARY KEY(ID)
) TYPE=MRG_MyISAM INSERT_METHOD=LAST UNION=(TEST_MERGE_1,TEST_MERGE_2);

上面的TYPE=MRG_MyISAM可能在有些mysql版本下面报错,修改成engine MRG_MyISAM

说明:
1. 此表结构必须与基本表完全一致,包括列名、顺序。UNION表必须同属一个DATABASE。
2. 此表类似于SQL中的union机制。
3. 基本表类型必须是MyISAM的。
4. 可以通过修改.mrg文件来修改MERGE表,每个基本表的名字占一行。注意:修改后要通过FLUSH TABLES刷新表缓存。
5. 对基本表的更改可以直接反映在此表上。
6. INSERT_METHOD的取值可以是: 0 不允许插入 FIRST 插入到UNION中的第一个表 LAST 插入到UNION中的最后一个表。(4.0之后可用)
7. 定义在它上面的约束没有任何作用,约束是由基本表控制的,例如两个基本表中存在着同样的一个Key值,那么在MERGE表中会有两个一样的Key值。

注意:
1.如果是通过修改.mrg文件的方式来修改MERGE表,那么一定要修改后要通过FLUSH TABLES刷新表缓存,否则修改不会生效。最近犯过一次这样的错误。
2.在数据量、查询量较大的情况下,不要试图使用Merge表来达到类似于Oracle的表分区的功能,会很影响性能。我的感觉是和union几乎等价。
3.查询结果及顺序与创建Merge表时联合表的顺序有关。
假设有这样两条个语句:
INSERT INTO TEST_MERGE_1(ID,VALUE) VALUES(1,'ciray');
INSERT INTO TEST_MERGE_2(ID,VALUE) VALUES(1,'blog.csdn.net/ciray');
然后,这个查询:
SELECT * FROM TEST_MERGE WHERE ID=1;
将只会得到一条记录(1,'ciray'),并不是两条记录,也不会是(1,'blog.csdn.net/ciray')。这是因为ID是 PRIMARY KEY,如果在第一个表中查询到记录,则不在后面的表中记录查。如果ID并没有定义唯一性约束,则这个查询会得到两条记录。

MySQL中merge表存储引擎用法相关推荐

  1. mysql 中的 engine 存储引擎

    以下为引用其它人博客中内容,转载太乱,已经找不到原创作者. 最开始用MySQL Administrator建数据库的时候,表缺省是InnoDB类型,也就没有在意.后来用Access2MySQL导数据的 ...

  2. MySQL中常用的存储引擎(MyISAM 和InnoDB)

     数据库存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使用存储引擎进行创建.查询.更新和删除数据操作.不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的存储引擎,还可以获 ...

  3. MySQL修改数据表存储引擎的3种方法介绍

    看你的mysql现在已提供什么存储引擎:mysql> show engines; 看你的mysql当前默认的存储引擎:mysql> show variables like '%storag ...

  4. Mysql 中转换表的引擎

    alter table mytable engine = InnoDB; 转载于:https://blog.51cto.com/quietnight/1614892

  5. mysql中merge的用法_mysql中merge表存儲引擎用法介紹

    mysql中merge表存儲引擎用法介紹: mysql的merge引擎類型允許你把許多結構相同的表合並為一個表.然后,你可以執行查詢,從多個表返回的結果就像從一個表返回的結果一樣.每一個合並的表必須有 ...

  6. MySql中启用InnoDB数据引擎的方法

    1.存储引擎是什么? Mysql中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术, ...

  7. Java 培训 MySQL 体系构架、存储引擎和索引结构

    对某项技术进行系统性的学习,始终离不开对该项技术的整体认知.只有领略其全貌,方可将各块知识点更好的串联起来.为了进一步理解和学习 MySQL,我们有必要了解一下 MySQL 的体系构架.存储引擎和索引 ...

  8. mysql 启用myisam_MySQL各存储引擎(INNODB,MyISAM等)的区别及其启动方法

    存储引擎是什么? MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术,你能 ...

  9. MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01

    MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01 1. MySQL体系结构和存储引擎 1.1 定义数据库和实例 数据库database: 物理操作系统文件或其他形式文件类型的集合. 当使 ...

最新文章

  1. 【转】接口测试技术介绍
  2. c#操作excel后关闭excel.exe的方法
  3. 为什么 Netflix “永不宕机”?
  4. 面试官系统精讲Java源码及大厂真题 - 20 SynchronousQueue 源码解析
  5. hibernate的各种保存方式的区别 (save,persist,update,saveOrUpdte,merge,flush,lock)等
  6. 计算机操作员(高级)理论知识考试卷,计算机操作员高级试题
  7. 计算机语言phal语言,phalapi
  8. 计算机网络:IP地址
  9. 大数模板——来自jxy师兄
  10. 阿里旺铺运营怎样做到低价引流
  11. uefi安装win10原版镜像|uefi gpt模式安装win10官方系统教程
  12. 首份视频报告:日本网民每月平均点击242.5个视频
  13. java上位机开发(java基础)
  14. Servlet 深度了解 JSPJava编程
  15. Mac使用ffmpeg将.mkv等格式无损转换为.mp4
  16. 腾讯微博10年数据对比,看看过去的辉煌,曾经的全球第一微博
  17. 许奔创新社-第51问:如何利用产品缺陷去创新?
  18. 影院在线售票云平台(仿猫眼电影,附SpringBoot项目源码) 系统功能实现
  19. 掌握这2个小技巧,让你轻松学会手机拍照计算数量
  20. 六、阿里云ECS服务器+项目部署

热门文章

  1. freeradius 3.0 mysql_secfree
  2. PowerDesigner中设置数据库类型,设置default value,Comment,自增属性,以及数据库设计中的需要考虑的示项,带有小数点的数据显示
  3. Elasticsearch的功能,Elasticsearch的适用场景,Elasticsearch的特点(来自学习资料)
  4. 01_GIT基础、安装
  5. struts2配置详解(struts.xml配置详解)
  6. Windows下VS2013 C++编译测试faster-rcnn
  7. Java爬虫之利用Jsoup自制简单的搜索引擎
  8. 【Unity Shader】三、漫反射Diffuse Shader例子
  9. 四渎《构建之法》——计划估计、敏捷流程、项目经理和用户场景
  10. JS原型、原型链深入理解