`
liudaoru
  • 浏览: 1558262 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MYSQL的MERGE存储引擎

阅读更多

From:http://blog.csdn.net/qiuye402/archive/2009/05/29/4224931.aspx

 

MYSQL的引擎不是一般的多,这次说到的是MERGE,这个引擎有很多特殊的地方:

MERGE引擎类型允许你把许多结构相同的表合并为一个表。然后,你可以执行查询,从多个表返回的结果就像从一个表返回的结果一样。每一个合并的表必须有同样的表定义。

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

其创建方法如下:

他将多个表在逻辑上当作一个表来查询。他建立后有两个文件, 
.frm 表结构定义 
.mrg union表的名字清单

两个基本表: 
CREATE TABLE TEST_MERGE_1( 
ID INT(5) NOT NULL, 
VALUE VARCHAR(100) NOT NULL, 
PRIMARY KEY(ID) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 
CREATE TABLE TEST_MERGE_2( 
ID INT(5) NOT NULL, 
VALUE VARCHAR(100) NOT NULL, 
PRIMARY KEY(ID) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8

MERGE表的建立: 
CREATE TABLE TEST_MERGE( 
ID INT(5) NOT NULL, 
VALUE VARCHAR(100) NOT NULL, 
PRIMARY KEY(ID) 
) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8 INSERT_METHOD=LAST UNION=(TEST_MERGE_1,TEST_MERGE_2) ;


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

分享到:
评论
1 楼 sandwich 2011-04-20  
如果你使用另外一种表类型(例如InnoDB),这种合并可能就不需要了。

请教一下,为什么这样说咧?

相关推荐

    MySQLMerge存储引擎

    MERGE存储引擎把一组MyISAM数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询。本文给大家介绍MySQLMerge存储引擎,需要的朋友参考下吧

    MYSQL数据库存储引擎介绍

    对于MYSQL常见的数据库存储引擎做了介绍,DBD、HEAP、ISAM、MERGE、MyIAS、InnoDB以及Gemeni等

    MySQL数据库:MySQL存储引擎.pptx

    MySQL 5.7支持的存储引擎有:InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV和BLACKHOLE等。 可以利用语句:show engines; 查看系统所支持的引擎类型。;1.InnoDB存储引擎 InnoDB是事务型数据库的首选引擎...

    Mysql合并表Merge引擎

    1.Merge(MRG_MyISAM)存储引擎类型允许你把许多结构相同的表合并为一个表。当从合并表中执行查询,从多个表返回的结果就像从一个表返回的结果一样。 2.要创建合并表的前提是每一个合并的表必须有同样的表定义(表结构...

    Mysql的MERGE存储引擎详解

    MERGE 存储引擎把一组 MyISAM 数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询。构成一个 MERGE 数据表结构的各成员 MyISAM 数据表必须具有完全一样的表结构。每一个成员数据表的数据列必须按照同样的...

    MySQL课程之MySQL存储引擎入门

    MySQL 支持多种存储引擎,目前的存储引擎有 MyISAM 、 InnoDB 、 BDB 、 Memory 、 Merge 、 Archive 、 Federated 、 BLACKHOLE 、 Cluster/NDB 、 CSV 、 Example 等。其中, InnoDB 、 NDB 、 BDB 支持事务,其他...

    如何选择合适的MySQL存储引擎

    MySQL支持数个存储引擎作为对不同表的类型的处理器。...就像MyISAM一样,MEMORY和MERGE存储引擎处理非事务表,这两个引擎也都被默认包含在MySQL中。 注释:MEMORY存储引擎正式地被确定为HEAP引擎。 ◆ InnoDB和B

    Mysql存储引擎详解

    对于Mysql来说,它提供了很多种类型的存储引擎 存储引擎说白了就是如何存储数据,如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。 因为在关系型数据库中数据的存储是以表的形式存储 的,所以存储...

    MySQL常用存储引擎功能与用法详解

    本文实例讲述了MySQL常用存储引擎功能与用法。分享给大家供大家参考,具体如下: MySQL存储引擎主要有两大类: 1. 事务安全表:InnoDB、BDB。 2. 非事务安全表:MyISAM、MEMORY、MERGE、EXAMPLE、NDB Cluster、...

    2021年MySQL高级教程视频.rar

    07.MySQL高级存储引擎Memory与Merge特性.avi 08.MySQL高级存储引擎选择原则.avi 09.MySQL高级优化SQL步骤SQL执行频率.avi 10.MySQL高级优化SQL步骤定位低效SQL.avi 11.MySQL高级优化SQL步骤explain指令介绍.avi 12....

    Mysql InnoDB引擎的索引与存储结构详解

    MySQL默认的存储引擎是MyISAM,其他常用的就是InnoDB,另外还有MERGE、MEMORY(HEAP)等。 主要的几个存储引擎 MyISAM管理非事务表,提供高速存储和检索,以及全文搜索能力。 MyISAM是Mysql的默认存储引擎。当create...

    深入MySQL存储引擎比较的详解

    MyISAM是MySQL的默认存储引擎。MyISAM不支持事务、也不支持外键,但其访问速度快,对事务完整性没有要求。 InnoDB存储引擎提供了具有提交、...MERGE存储引擎是一组MyISAM表的组合,这些MyISAM表必须结构完全相同。MERGE

    MySQL存储引擎总结

    前言 在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库。而在设计表的时候,我们都会关注一个问题,使用什么存储...对于MySQL来说,它提供了很多种类型的存储引擎,我们可以根

    MySQL存储引擎简介及MyISAM和InnoDB的区别

    MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改 STORAGE_ENGINE 配置变量,能够方便地更改MySQL服务器的默认存储引擎。 InnoDB:用于事务处理应用...

    浅谈MySQL中四种常用存储引擎

    (1):MyISAM存储引擎: 不支持事务、也不支持外键,优势是访问速度快,对事务完整性没有 要求或者以select,insert为主的应用基本上可以用这个引擎来创建表 支持3种不同的存储格式,分别是:静态表;动态表;压缩...

    mysql-installer-community-8.0.24.0.rar

    可插拔的存储引擎架构 多种存储引擎: InnoDB MyISAM NDB (MySQL Cluster) Memory Merge Archive CSV 等等 MySQL 复制可提高应用性能和可扩展性 MySQL 分区有助于增强大型数据库应用的性能和管理 存储过程可提高开发...

Global site tag (gtag.js) - Google Analytics