`
liudaoru
  • 浏览: 1575629 次
  • 性别: 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存储引擎

    MySQLMerge存储引擎是一种特殊的存储引擎,它允许将多个MyISAM表组合成一个逻辑上的大表,以便于管理和查询。这种引擎的主要目的是为了提供一种高效的方式来处理大量的分年度或分时间段的数据,例如日志记录或其他...

    mysql-存储引擎-实验四.docx

    在实验中,我们使用 MySQL 8.0 查看了支持的存储引擎,包括 InnoDB、MyISAM、MEMORY、CSV、BLACKHOLE、EXAMPLE、FEDERATED、Archive、Merge 等。不同的存储引擎有不同的特点和使用场景,在选择存储引擎时需要根据...

    mysql-存储引擎和数据库对象实验五.docx

    本实验报告主要介绍 MySQL 中的存储引擎和数据库对象,涵盖了 MEMORY 存储引擎、MERGE 存储引擎、CHAR、VARCHAR、TEXT、BLOB 等类型的使用和特点,以及浮点数、定点数、日期类型的使用和设置规则。 一、MEMORY 存储...

    MySQL存储引擎简介

    如MEMORY存储引擎适合用于创建临时表,MERGE存储引擎适用于多个MyISAM表合并成为一个表,NDB存储引擎则适用于构建分布式数据库。 在未来的版本中,MySQL持续优化其存储引擎的特性,开发者需要关注新的特性更新,...

    mysql存储引擎介绍

    除了 MyISAM 和 InnoDB 之外,MySQL 还提供了其他几个存储引擎,如 MEMORY、MERGE 等。 MEMORY 存储引擎是一种基于内存的存储引擎,数据存储在内存中,访问速度非常快,但是数据不是持久性的,服务器重启后数据将会...

    MYSQL数据库存储引擎介绍

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

    MySQL存储引擎学习

    MERGE存储引擎可以将多个MyISAM表合并成一个表,提供了更好的查询性能。 NDB存储引擎是集群存储引擎,提供了高可用性和高性能的集群存储解决方案。ARCHIVE存储引擎是压缩存储引擎,提供了非常高的存储空间利用率。...

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

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

    Mysql的MERGE存储引擎详解

    MySQL的MERGE存储引擎是一种特殊的数据存储方式,它允许用户将多个MyISAM表合并成一个逻辑表,以便于管理和查询。这种引擎的设计目的是为了处理大量数据,特别是那些可以通过时间或者其他分类标准进行分片的数据。在...

    MySql教程-数据库存储引擎.pdf

    Merge存储引擎的使用场景: * 服务器日志 * 分布式数据存储 4. MEMORY存储引擎 MEMORY存储引擎使用系统内存来存储数据,能够提供高性能的数据访问速度。MEMORY存储引擎特别适合: * 需要高性能的数据访问场景 * ...

    Mysql 表类型(存储引擎)

    - Merge存储引擎用于合并多个MyISAM或Memory表,这些表通常有相同的结构,可以作为一个整体进行查询,方便管理和存储大量的数据。 6. **Federated** - Federated存储引擎允许在不同服务器之间分布数据,一个表...

    Mysql合并表Merge引擎

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

    mysql插件式存储引擎体系结构

    ### MySQL插件式存储引擎体系结构详解 #### 一、概述 MySQL的插件式存储引擎体系结构是一种灵活的设计模式,允许用户根据具体的应用场景选择最适合的存储引擎。这一架构的最大优势在于它允许应用程序和数据库管理...

    第6章MySQL存储引擎与数据库.docx

    MySQL存储引擎是数据库管理系统的核心组件,它决定了数据如何在MySQL中存储、检索和管理。不同的存储引擎具有不同的特性和用途,以适应各种应用场景。在MySQL中,存储引擎主要负责数据的物理存储方式、事务处理、...

    MySQL数据库存储引擎探析.pdf

    MySQL还提供了其他几种存储引擎,如NDBCluster适用于分布式环境,Maria是对MyISAM的升级版,Falcon是MySQL公司正在研发的事务性存储引擎,Memory引擎用于存储在内存中的临时表,Archive用于压缩存储日志,Merge用于...

    MySQL课程之MySQL存储引擎入门

    MySQL提供了多种存储引擎,包括MyISAM、InnoDB、BDB、Memory、Merge、Archive、Federated、BLACKHOLE、Cluster/NDB、CSV和Example等。其中,InnoDB、NDB和BDB支持事务处理,提供了一定的数据一致性保障,而其他引擎...

    MySql的存储引擎.doc

    它的核心特性之一就是插入式的多存储引擎机制,这使得MySQL能够根据不同的应用场景选择最适合的存储方式。 存储引擎是数据库管理系统中负责数据存储、索引创建、数据更新和查询等操作的具体实现方式。MySQL支持多种...

Global site tag (gtag.js) - Google Analytics