在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表的查询结果不变。
相关推荐
MySQLMerge存储引擎是一种特殊的存储引擎,它允许将多个MyISAM表组合成一个逻辑上的大表,以便于管理和查询。这种引擎的主要目的是为了提供一种高效的方式来处理大量的分年度或分时间段的数据,例如日志记录或其他...
15. **InnoDB与MyISAM引擎**:对比分析这两个最常用的存储引擎,了解它们的优缺点和适用场景。 16. **JSON支持**:MySQL 5.7及以后版本对JSON数据类型的内置支持,以及如何处理JSON字段。 17. **窗口函数与行级...
缺点是占用的空间通常比动态表多。 InnoDB 存储引擎 InnoDB 存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比 MyISAM 的存储引擎,InnoDB 写的处理效率差一些并且会占用更多的磁盘空间以保留数据...
6. MERGE 表:MySQL 的 MERGE 表功能允许方便地管理和合并多个表。 7. 压缩功能:myisampack 可以压缩只读表,同时不影响直接访问。 PostgreSQL 的主要优势体现在: 1. 事务处理:PostgreSQL 的事务支持经过更严格...
MySQL是世界上最流行的关系型...了解每种引擎的优缺点和应用场景,可以帮助我们根据实际需求做出最佳决策。在实际工作中,根据业务需求选择合适的存储引擎,并进行适当的参数调整,是提升MySQL数据库性能的重要手段。
- **Merge**:主要用于合并多个相同类型的子表成为一个大的表,但并不充分利用索引的优势。 - **ARCHIVE**:用于存储大量的只读数据,占用空间较小。 #### 四、MyISAM优化技巧 - **key_buffer_size**:设置MyISAM...
- **Merge**: 用于合并多个MyISAM表的行为如同单个表; - **InnoDB**: 支持事务处理和行级锁,适用于高并发的环境; - **Memory**: 与Heap类似,但提供了更快的速度,主要用于临时表。 #### 三、MyISAM与InnoDB的...
每种存储引擎都有其特点和优缺点,选择合适的存储引擎对数据库的性能和安全性至关重要。 MyISAM 是 MySQL 5.0 之前的默认数据库引擎,拥有较高的插入、查询速度,但不支持事务。InnoDB 是事务型数据库的首选引擎,...
本教程主要涵盖了数据库管理系统的基本概念、MySQL 8.0的新特性、数据库体系结构、关系数据库的优缺点、MySQL服务的启动方法,以及数据库操作如存储引擎、表的操作、外键约束等关键知识点。 1. **数据库管理系统的...
MySQL高级篇中,视图(VIEW)是一种虚拟表,本身不具有数据,占用很少的内存空间。视图建立在已有表的基础上,视图赖以建立的这些表称为基表。视图的创建和删除只影响视图本身,不影响对应的基表。但是当对视图中的...
集群的优点在于扩展性强,但缺点是单表数据量未减少,操作时间未显著缩短,且硬件成本较高。 二、预估分表 预估分表是在预期某些表将产生大量数据和频繁访问的情况下,提前进行的分表操作。例如,论坛的帖子表、...
静态MyISAM适合于数据列长度固定的表,具有较高的存取效率和易于恢复的优点,但不支持事务处理、行级锁定和外键约束。动态MyISAM节省空间,但易产生碎片,需要定期优化。压缩MyISAM则用于节省存储空间,但只能读取,...
- 数据库索引:B-TREE、HASH和R-TREE等不同类型的索引,以及它们的优缺点和适用场景。 - 数据库关系设计:如何通过ER图(实体关系图)来表示实体、属性和关系。 3. **事务处理**: - 事务的基本概念:ACID属性...
此外,还有Memory、Merge、CSV等引擎,每种都有其特定的应用场景和优缺点,选择合适的引擎对优化数据库性能至关重要。 接着,“mysql_procedure.doc”探讨了MySQL的存储过程。存储过程是一组预先编译的SQL语句,...
- InnoDB与MyISAM:对比InnoDB(事务安全,行级锁定)和MyISAM(非事务安全,表级锁定)的优缺点,以及适用场景。 - Memory和Merge存储引擎:内存表和合并表的使用场景和特性。 3. **并发控制与事务处理**: - ...
18. **MyISAM表类型的优缺点**:MyISAM适合读取密集型应用,因为它通常比InnoDB更快,但不适用于需要事务处理或并发写入的情况。 这些知识点涵盖了MySQL的基础知识、优化技巧以及高级特性,对于面试者来说是必备的...
- **其他存储引擎**:如Memory(内存表)、Merge(合并表)等,各有优缺点,需根据实际需求选择。 4. **数据库架构设计**: - **范式理论**:遵循第一范式(1NF)、第二范式(2NF)和第三范式(3NF),减少数据...