`
gallon00
  • 浏览: 31406 次
  • 性别: Icon_minigender_1
  • 来自: 运城
文章分类
社区版块
存档分类
最新评论

【抄】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表的查询结果不变。
分享到:
评论

相关推荐

    Mysql合并表Merge引擎

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

    MySQLMerge存储引擎

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

    MySQL数据库性能优化之入门.pdf

    重点讲解了慢查询、索引、Multi Range Read、Index Merge、ICP,等相关功能。这里均为本人的学习总结。内容有2附图1个来自书本、一个来自网络,其余均为本人原创。 未经运行不得商业使用。

    Mysql临时表和派生表

    - 不同的存储引擎如Memory、MyISAM、Merge或InnoDB等都支持创建临时表。 - 临时表不支持聚簇索引和触发器。 - `SHOW TABLES`命令不会显示临时表。 - 不能使用`RENAME`命令重命名临时表,但可以使用`ALTER TABLE`命令...

    Merge Into 语句代替InsertUpdate

    非常经典的SQL经验,适合于数据库初学者及长期从事软件开发者

    Mybatis批量foreach merge into的用法

    Mybatis批量foreach merge into的用法是通过Mybatis的动态SQL语法foreach循环插入实现的,这种方法可以批量插入时间价格表数据。如果某个套餐的某天的价格存在,则更新,不存在则插入。下面是该方法的详细介绍: ...

    Merge into的使用详解

    在SQL语言中,`MERGE INTO`语句是一种强大的工具,用于合并两个数据集,它允许根据特定条件将数据从一个源(通常是临时表或视图)插入或更新到目标表。这个操作通常被称为“合并”或“ Upsert”,因为它可以实现插入...

    Araxis Merge v6.5/Araxis Merge 2017比对工具

    Araxis Merge是一款比对软件工具,不仅支持单个文件的比对,而且支持对两个文件夹的所有文件进行对比,并实时修改。用了蛮久感觉很好用,所以分享给大家。 里面给大家内嵌了Araxis Merge v6.5和Araxis Merge 2017两...

    Mysql的MERGE存储引擎详解

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

    WinMerge WinMerge WinMerge

    WinMerge是一款强大的文本和文件比较工具,尤其在IT行业中,它是开发者和版本控制使用者的得力助手。这个软件能够帮助用户高效地对比不同版本的代码或者其他文本文件,从而快速定位和理解版本之间的差异。 首先,...

    Mysql 表类型(存储引擎)

    MySQL数据库系统支持多种表类型,也称为存储引擎。这些存储引擎各具特色,适用于不同的应用场景,从而满足用户在性能、可扩展性、事务安全性等方面的需求。以下是对MySQL中几种主要表类型的详细介绍: 1. **InnoDB*...

    Mysql中查看表的类型InnoDB

    MySQL 数据表主要支持六种类型 ,分别是:BDB、HEAP、ISAM、MERGE、MYISAM、InnoBDB。

    Oracle merge into用法

    在Oracle数据库中,`MERGE INTO`语句是一种非常强大的工具,它允许用户根据源表中的数据更新目标表,同时也可以插入新记录。这一特性在处理大量数据时尤其有用,因为它能够在一个步骤中完成更新和插入操作,从而提高...

    merge01 merge 比较工具1

    merge 比较工具 merge 比较工具merge 比较工具

    winmerge代码比较工具

    **WinMerge:强大的代码比较与合并工具** WinMerge是一款高效且易用的代码比较工具,类似于知名的Beyond Compare,但它提供了一种免注册码的使用体验,对于开发者和日常文件管理用户来说,它是一个非常实用的选择。...

    AraxisMerge绿色版

    Araxis Merge是一款备受推崇的文件比较工具,尤其在IT专业人士中广受欢迎。它以其强大的功能、易用性和高效性著称,被誉为最好用的比较工具。这个“AraxisMerge绿色版”是免安装版本,无需复杂的安装过程,用户可以...

    Merge工具 win Merge

    **Win Merge:一款强大的文件与文件夹比较工具** 在IT领域,经常需要处理不同版本的文件或代码,这时,一个高效的文件比较工具就显得尤为重要。Win Merge是一款深受开发者和普通用户喜爱的免费文件和文件夹比较工具...

    oracle Merge 函数.doc

    Oracle Merge 函数是一种强大的数据操作语句,用于从一个表中选择一些数据更新或者插入到另一个表中。Merge 函数的使用方式有三种:只更新不插入、只插入不更新和既插入也更新。 Merge 函数的基本用法 Merge ...

Global site tag (gtag.js) - Google Analytics