阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL存储引擎memory和merge介绍

362次阅读
没有评论

共计 2158 个字符,预计需要花费 6 分钟才能阅读完成。

一. memory 存储引擎

memoery 存储引擎是在内存中来创建表,每个 memory 表只实际对应一个磁盘文件格式是.frm.  该引擎的表访问非常得快,因为数据是放在内存中,且默认是 hash 索引,但服务关闭,表中的数据就会丢失掉。

— 下面创建一个 memory 表,并从 city 表获得记录
CREATE TABLE tab_memory ENGINE=MEMORY
SELECT city_id,country_id FROM city GROUP BY city_id

MySQL 存储引擎 memory 和 merge 介绍

— 给 momory 表创建索引时,可以指定是 hash 索引还是 btree 索引
CREATE INDEX mem_hash USING HASH ON tab_memory(city_id);
SHOW INDEX FROM tab_memory

 MySQL 存储引擎 memory 和 merge 介绍

DROP INDEX mem_hash ON tab_memory;
CREATE INDEX mem_hash USING BTREE ON tab_memory(city_id)
SHOW INDEX FROM tab_memory

 MySQL 存储引擎 memory 和 merge 介绍

总结:服务器需要足够的内存来维护所有在同一时间使用的 memory 表,当不再需要时,要释放,应执行 delete from 或 truncate table 或删除表 drop table。
每个 memory 表放置的数据量大小,受到 max_heap_table_size 系统变量的约束,初始值是 16MB. 通过 max_rows 子句指定表的最大行数。
memory 类型 一般应用于临时表,如统计操作的中间结果表。

二. merge 存储引擎

merge 引擎是一组 MyISAM 表的组合,这些 MYISAM 表必须结构完全相同,merge 表本身并没有数据,对表的增删改查 实际是对内部的 myisam 表进行操作。
对于 merge 类型表的插入操作有三种类型:first 是插入在第一个表,last 是插入到最后一个表,不定义或为 NO 表示不能对 merge 表执行插入操作,对于 merge 表的 drop 操作,内部的表没有任何影响。merge 在磁盘上保留两个文件,一个是.frm 文件存储表定义,另一个是.mrg 文件包含组合表的信息。

— 下面来测试下,创建三个结构相同的表 payment_2006,payment_2007,payment_all(merge 类型)。
CREATE TABLE payment_2006(
 country_id SMALLINT,
 payment_date DATETIME,
 amount DECIMAL(15,2),
 KEY inx_fx_country_id (country_id)
)ENGINE =MYISAM

CREATE TABLE payment_2007(
 country_id SMALLINT,
 payment_date DATETIME,
 amount DECIMAL(15,2),
 KEY inx_fx_country_id (country_id)
)ENGINE =MYISAM

CREATE TABLE payment_all(
 country_id SMALLINT,
 payment_date DATETIME,
 amount DECIMAL(15,2),
 INDEX  (country_id)
)ENGINE =MERGE UNION=(payment_2006,payment_2007) INSERT_METHOD=LAST;

— 分别向 payment_2006 和 payment_2007 表插入数据
INSERT INTO payment_2006 VALUES(1,’2006-05-01′,100000),(2,’2006-08-01′,150000);
INSERT INTO payment_2007 VALUES(1,’2007-05-01′,200000),(2,’2007-08-01′,350000);

— 查询 payment_all
SELECT * FROM payment_all;

下图发现该 paymnet_all 表合并了二表的结果集:

 MySQL 存储引擎 memory 和 merge 介绍

— 下面向 payment_all 表插入数据 表定义是 INSERT_METHOD=LAST;
INSERT INTO payment_all VALUES(3,’2006-05-01′,112000);
— 查询
SELECT * FROM payment_2007;

 MySQL 存储引擎 memory 和 merge 介绍

总结: MERGE 表并不能智能地将记录写到对应的表中,而分区表是可以的,通常我们使用 merge 表来透明地对多个表进行查询和更新操作。

三.. 如何选择合适的存储引擎

myisam: 如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性,并发性要求不是很高,例如数据仓储。

innodb: 用于事务处理应用程序,支持外键,对事务的完整性较高,并发条件下数据一致性,包括很多的更新和删除操作,它能避免删除和更新导致的锁定,还提供了提交和回滚,例如计算费用对数据准确性要求高的。

memory: 数据保存在 ram(内存) 中,访问速度快,但对表的大小有限制,要确保数据是可以恢复的,常用于更新不太频繁的小表,用以快速访问。

merge: 它是 myisam 表以逻辑方式组合的引擎,将 myisam 表分布在多个磁盘上,可以有效改善 merge 表的访问效率。例如数据仓储等。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2158字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7802027
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的 3D 玩偶了 前些日子参加某网站活动,获得一次实物 3D 打印的机会,于是从众多...
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛 NAS-5:飞牛 NAS 中的 Docker 功能介绍 大家好,我是星哥,今天给大家带来如何在...