Mysql MERGE引擎简介

pi-star图形界面安装指南 pi-star图形界面安装指南,MMDVM热点安装,树莓派3B+热点 阅读详情

一. 什么是MERGE引擎
MERGE存储引擎把一组MyISAM数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询。

二. 应用场景
如果需要把日志纪录不停的录入MySQL数据库,并且每天、每周或者每个月都创建一个单一的表,而且要时常进行来自多个表的合计查询,MERGE表这时会非常简单有效。

三. 举例
假设有如下两表

[sql]  view plain copy
  1. CREATE TABLE `t1` (     
  2. `id` int(10) unsigned NOT NULL AUTO_INCREMENT,     
  3. `log` varchar(45) ,     
  4. PRIMARY KEY (`id`)   
  5. ) ENGINE=MyISAM;  
[sql]  view plain copy
  1. CREATE TABLE `t2`(     
  2. `id` int(10) unsigned NOT NULL AUTO_INCREMENT,     
  3. `log` varchar(45) ,     
  4. PRIMARY KEY (`id`)   
  5. ) ENGINE=MyISAM;  

假设t1,t2中都有如下记录

+----+-------+

| id | log   |

+----+-------+

|  1 | test1 |

|  2 | test2 |

|  3 | test3 |

+----+-------+

建立MERGE表

[sql]  view plain copy
  1. CREATE TABLE `t` (     
  2. `id` int(10) unsigned NOT NULL AUTO_INCREMENT,     
  3. `log` varchar(45) NOT NULL,     
  4. PRIMARY KEY (`id`)   
  5. ) ENGINE=MERGE UNION=(t1, t2) INSERT_METHOD=LAST;  

执行select * from t;将会得到如下结果
+----+-------+
| id | log   |
+----+-------+
|  1 | test1 |
|  2 | test2 |
|  3 | test3 |
|  1 | test1 |
|  2 | test2 |
|  3 | test3|
+----+-------+

从效果上看,t1,t2的记录如同在一张表里一样被罗列了出来。当然,看了这个结果你一定会有一些疑问,在下一节里我们会慢慢解释。现在我们主要来解释一下上面MERGE表的建表语句。
1)ENGINE=MERGE
指明使用MERGE引擎,有些同学可能见到过ENGINE=MRG_MyISAM的例子,也是对的,它们是一回事。
2)UNION=(t1, t2)
指明了MERGE表中挂接了些哪表,可以通过alter table的方式修改UNION的值,以实现增删MERGE表子表的功能。
3)INSERT_METHOD=LAST
INSERT_METHOD指明插入方式,取值可以是:0 不允许插入;FIRST 插入到UNION中的第一个表; LAST 插入到UNION中的最后一个表。
4)MERGE表及构成MERGE数据表结构的各成员数据表必须具有完全一样的结构。每一个成员数据表的数据列必须按照同样的顺序定义同样的名字和类型,索引也必须按照同样的顺序和同样的方式定义。

四. Cookie问答
1)建表时UNION指明的子表如果存在相同主键的记录会怎么样?
相同主键的记录会同时存在于MERGE中,就像第三节中的例子所示。但如果继续向MERGE表中插入数据,若数据主键已存在则无法插入。换言之,MERGE表只对建表之后的操作负责。

2)若MREGE后存在重复主键,按主键查询会是什么结果?
顺序查询,只出现一条查询记录即停止。比如第三节中的例子,如果执行

[sql]  view plain copy
  1. select * from t where id=1;  


只会得到结果
+----+--------+
| id | log    |
+----+--------+
|  1 | test1  |
+----+--------+

3)直接删除一个子表会出现什么情况,正确删除的方式是怎样的?
MERGE表会被破坏,正确方式是用alter table方式先将子表从MERGE表中去除,再删除子表。
以第三节中的例子为例,执行如下操作

[sql]  view plain copy
  1. alter table t ENGINE=MRG_MyISAM UNION=(t1) INSERT_METHOD=LAST;  


可以从MERGE表中去除t2,这里你可以安全的对t2进行任何操作了。

4)误删子表时,如何恢复MERGE表?
误删子表时,MERGE表上将无法进行任何操作。
方法1,drop MERGE表,重建。重建时注意在UNION部分去掉误删的子表。
方法2,建立MERGE表时,会在数据库目录下生成一个.MRG文件,比如设表名为t,则文件名为t.MRG。
文件内容类似:
t1
t2
#INSERT_METHOD=LAST
指明了MGEGE表的子表构成及插入方式。
可以直接修改此文件,去掉误删表的表名。然后执行flush tables即可修复MERGE表。

5)MERGE的子表中之前有记录,且有自增主键,则MERGE表创建后,向其插入记录时主键以什么规则自增?
以各表中的AUTO_INCREMENT最大值做为下一次插入记录的主键值。
比如t1的自增ID至6,t2至4,则创建MERGE表后,插入的下一条记录ID将会是7

6)两个结构完全相同的但已存在数据的表,是否一定可以合成一个MEREGE表?
从实验的结果看,不是这样的,有时创建出的表,无法进行任何操作。
所以,推荐的使用方法是先有一个MERGE表,里面只包含一张表,当一个这个表的的大小增长到一定程度(比如200w)时,创建另一张空表,将其挂入MERGE表,然后继续插入记录。

7)删除MERGE表是否会对子表产生影响?
不会

8)MREGE表的子表的ENGIN是否有要求?
有的,必须是MyISAM表

附:
官方给出的关于MERGE表存在的一些问题
http://dev.mysql.com/doc/refman/5.1/zh/storage-engines.html#merge-table-problems
如果需要把日志纪录不停的录入MySQL数据库,并且每天、每周或者每个月都创建一个单一的表,而且要时常进行来自多个表的合计查询,MERGE表这时会非常简单有效。

速腾RS-LiDAR-16激光雷达ROS配置全攻略:从硬件连接到Rviz点云可视化 本文详细介绍了速腾RS-LiDAR-16激光雷达在ROS环境中的配置与使用全攻略,涵盖硬件连接、网络配置、ROS驱动安装及Rviz点云可视化等关键步骤。通过实战案例和技术解析,帮助开发者快速实现激光雷达数据采集与处理,提升机器人感知系统的部署效率。 阅读详情

相关推荐

wsl2内核版本和模块版本不一致解决方法

** /lib/modules/…build: No such file or directory错误解决办法这篇文章历时1个月整,从4月5日一直到5月5日,这一问题才得以解决。

m0_60634555的博客 5103

MySQL四种方法实现merge into

本文主要介绍将oracle中的merge into转换成MySQL的语法 在Oracle中,可以使用merge into,但是,MySQL 8之前的版本不支持,可以使用以下几种方法。

楠先生 8132

别再手动续期SSL证书了!用acme.sh配合阿里云DNS API,实现全自动HTTPS证书管理

本文详细介绍了如何使用acme.sh配合阿里云DNS API实现SSL/TLS证书的全自动管理,彻底解决手动续期带来的风险与不便。通过自动化部署流程,包括环境准备、API集成、多域名证书申请等关键步骤,帮助运维人员构建高效、可靠的HTTPS证书管理体系,显著提升安全性和运维效率。

weixin_29200485的博客 268

mysql merge用法详解_SQLServer之merge函数用法_MySQL

MERGE 目标表USING 源表ON 匹配条件WHEN MATCHED THEN语句WHEN NOT MATCHED THEN语句;其中最后语句分号不可以省略,且源表既可以是一个表也可以是一个子查询语句WHEN NOT MATCHED BY TARGET表示目标表不匹配,BY TARGET是默认的,所以上面我们直接使用WHEN NOT MATCHED THENWHEN NOT MATCHED B...

weixin_29250573的博客 6692

innovus:ccopt_design分段长tree操作

这步don't touch保证后面完整cts尽量不会动到已经长过的tree。需要给sub tree手写一个spec,参考create_ccopt_clock_tree_spec -file的写法,只写create_ccopt_clock_tree和skew group部分就行。

m0_61544122的博客 1675

【Bug已解决】[Bug]: ValueError: No user query found in messages QWEN 3.5 27B VLLM 0.16.0 NIGHTLY 解决方案

用 vLLM 0.16.0 nightly 给发聊天请求时,服务端在处理消息时抛ValueError,请求失败。

博客 398

MySQL数据库---存储引擎(MyISAM与InnoDB)

数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是存储引擎。MySQL中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎。

weixin_60917414的博客 8111

【深度学习新浪潮】Score Matching(分数匹配):原理、推导与PyTorch实战

在概率模型训练中,配分函数(归一化常数)是绕不开的难题——尤其是能量模型(EBM)、扩散模型等未归一化模型,直接计算配分函数几乎不可能。Score Matching(分数匹配)作为一种无归一化的参数估计方法,通过拟合概率密度的对数梯度(分数函数),彻底避开了配分函数的计算,成为生成建模、密度估计的核心技术之一。本文将从基础概念出发,逐步推导Score Matching的核心公式,并结合PyTorch实现一个可直接运行的实战案例,帮你彻底理解这一关键技术。Score Matching的核心是。

专注:太空算力、AI infra、异构调度、大模型成本工程 250

mysql中merge的用法,原来sql还可以这样写,真方便……(还有merge的用法)

DML(改变数据结构)insert语句表间数据拷贝:insert into dept1(id,name) select(deptno,dname) fromdept;update语句:将编号为7779用户的工作换成7566的雇员的工作和所属上级。updatemyemp set(job,mgr) = (select job,mgr from myemp where empno=7566)where ...

weixin_42467896的博客 2004

通过理解 sk_buff 深入掌握 Linux 内核自定义协议族的开发实现

在。

数字人生 458

Excel 汉字首字母提取:四种方案对比与选型

本文对比了 Excel 中提取汉字首字母的四种方案:手动转换、VBA 脚本、映射表与 AI 工具。手动方式低效易错;VBA 适合无网环境但识别范围有限;映射表精度提升却无法解决多音字;AI 工具通过语义理解可一句话完成提取,是多数场景下的首选。

u011186532的专栏 393

MySQL MERGE引擎简介

MERGE存储引擎把一组MyISAM数据表当做一个表来处理,可以同时对他们进行查询。构成一个MERGE数据表结构的各成员MyISAM数据表必须具有完全一样的结构。每一个成员数据表的数据列必须按照同样的顺序定义同样的名字和类型,索引也必须按照同样的顺序和同样的方式定义。 例如,某短信业务,讲短信数据按照日期分表存储 create database if not exists sms charac...

null 9354

Docker安装并运行AnythingLLM的详细教程

通过本文的介绍,你已经掌握了如何在 CentOS 系统上使用 Docker 安装并运行 AnythingLLM。AnythingLLM 提供了强大的功能,支持本地知识库搭建和多模态输入,非常适合个人和企业使用。希望本文能帮助你快速上手并搭建自己的 AI 知识库。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 5837

MySQL MERGE存储引擎 简介

MERGE存储引擎把一组MyISAM数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询。构成一个MERGE数据表结构的各成员MyISAM数据表必须具有完全一样的结构。每一个成员数据表的数据列必须按照同样的顺序定义同样的名字和类型,索引也必须按照同样的顺序和同样的方式定义。 假设你有几个日志数据表,他们内容分别是这几年来每一年的日志记录项,他们的定义都是下面这样,YY代表年份: CR

leiyonglin的博客 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

MySQL MERGE存储引擎 简介及用法

MERGE存储引擎把一组MyISAM数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询。构成一个MERGE数据表结构的各成员MyISAM数据表必须具有完全一样的结构。每一个成员数据表的数据列必须按照同样的顺序定义同样的名字和类型,索引也必须按照同样的顺序和同样的方式定义。 假设你有几个日志数据表,他们内容分别是这几年来每一年的日志记录项,他们的定义都是下面这样,YY代表年份: CREATE...

天宝的博客 191

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

MySQL MERGE存储引擎简介及用法

MERGE存储引擎把一组MyISAM数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询。构成一个MERGE数据表结构的各成员MyISAM数据表必须具有完全一样的结构。每一个成员数据表的数据列必须按照同样的顺序定义同样的名字和类型,索引也必须按照同样的顺序和同样的方式定义。 假设你有几个日志数据表,他们内容分别是这几年来每一年的日志记录项,他们的定义都是下面这样,YY代表年份:

Qingzhaoi的博客 247

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

mysql meger引擎区别_【转】Mysql MERGE引擎简介

三.举例假设有如下两表CREATETABLE`t1`(`id`int(10)unsignedNOTNULLAUTO_INCREMENT,`log`varchar(45),PRIMARYKEY(`id`))ENGINE=MyISAM;CREATETABLE`t2`(`id`int(10)unsignedNOTNULLAUTO_INCREMENT,`log`...

weixin_30249465的博客 142

mysql meger引擎区别_MySQL MERGE存储引擎 简介

MERGE存储引擎把一组MyISAM数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询。构成一个MERGE数据表结构的各成员MyISAM数据表必须具有完全一样的结构。每一个成员数据表的数据列必须按照同样的顺序定义同样的名字和类型,索引也必须按照同样的顺序和同样的方式定义。假设你有几个日志数据表,他们内容分别是这几年来每一年的日志记录项,他们的定义都是下面这样,YY代表年份:[sql]CRE...

weixin_30776737的博客 185
上一篇: 根据手机号码查归属的再查经纬度
下一篇: mysql的数据库引擎
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值