广告
返回顶部
首页 > 资讯 > 数据库 >关于MySQL Memory存储引擎的相关知识
  • 461
分享到

关于MySQL Memory存储引擎的相关知识

MySQLMemory存储引擎MySQL存储引擎 2022-05-27 05:05:14 461人浏览 薄情痞子
摘要

关于Memory存储引擎的知识点     Memory存储引擎在日常的工作中使用的是比较少的,但是在Mysql的某些语法中,会用到memory引擎的内存表,它有以下几个特点: 内存表的建

关于Memory存储引擎的知识点

    Memory存储引擎在日常的工作中使用的是比较少的,但是在Mysql的某些语法中,会用到memory引擎的内存表,它有以下几个特点:

内存表的建表语法是create table … engine=memory。

这种表的数据都保存在内存里,系统重启的时候会被清空,但是表结构还在。

Memory存储引擎的数据和索引是分开的。memory存储引擎的表也可以有主键,主键id上存储的是每个数据的位置,主键id是哈希索引,索引上的key也不是连续的。

    这种数据和索引分开存放的数据组织形式,我们称之为"堆组织表",这点区别于Innodb 存储引擎的"索引组织表"

Innodb和memory存储引擎的区别

Memory存储引擎的数据存储顺序和插入顺序相同,而innodb存储引擎的数据存储顺序是按照聚集索引有序排列的。举例如下:


mysql> create table t1(id int primary key, c int) engine=Memory;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into t1 values(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(0,0);
Query OK, 10 rows affected (0.00 sec)
Records: 10 Duplicates: 0 Warnings: 0

mysql> select * from t1;
+----+------+
| id | c  |
+----+------+
| 1 |  1 |
| 2 |  2 |
| 3 |  3 |
| 4 |  4 |
| 5 |  5 |
| 6 |  6 |
| 7 |  7 |
| 8 |  8 |
| 9 |  9 |
| 0 |  0 |
+----+------+
10 rows in set (0.00 sec)


mysql> create table t2(id int primary key, c int) engine=innodb;
Query OK, 0 rows affected (0.01 sec)

mysql> insert into t2 values(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(0,0);
Query OK, 10 rows affected (0.00 sec)
Records: 10 Duplicates: 0 Warnings: 0


mysql> select *from t2;
+----+------+
| id | c  |
+----+------+
| 0 |  0 |
| 1 |  1 |
| 2 |  2 |
| 3 |  3 |
| 4 |  4 |
| 5 |  5 |
| 6 |  6 |
| 7 |  7 |
| 8 |  8 |
| 9 |  9 |
+----+------+
10 rows in set (0.00 sec)

可以看到,memory存储引擎的结果中,(0,0)这条记录是在最后面的,和插入顺序一致,而innodb存储引擎的结果中,是按照记录的顺序进行排列的。

当数据文件有空洞的时候,innodb存储引擎插入数据需要在指定的位置插入,而memory存储引擎只要找到空隙就可以插入

当数据位置发生变化的时候,memory存储引擎需要修改所有的索引,而innodb存储引擎仅需要修改主键索引即可。

innodb存储引擎查询的时候有"回表",而memory存储引擎不需要回表。

innodb存储引擎支持varchar,而memory存储引擎不支持,所有的varchar都当做char处理,除此之外,memory存储引擎还不支持blob和text字段。

范围查询的时候,memory存储引擎无法支持。因为它的索引类型是哈希索引

在生产环境上,一般不建议使用内存表,理由主要有以下两点:

内存表不支持行,只支持表锁,一旦该表有更新,就会阻塞该表的其他操作,包括读操作;这就意味着这种表的并发性能不好。

数据持久性不好,一旦数据库宕机,内存表中的数据会丢失,他会忘往binlog中写入一条delete from table的语句,但是表结构还是存在的。这个delete语句在双M的环境下,从库宕机有可能污染主库的临时表数据,是比较危险的操作。

以上就是关于MySQL Memory存储引擎的相关知识的详细内容,更多关于MySQL Memory存储引擎的资料请关注自学编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: 关于MySQL Memory存储引擎的相关知识

本文链接: https://www.lsjlt.com/news/9919.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 关于MySQL Memory存储引擎的相关知识
    关于Memory存储引擎的知识点     Memory存储引擎在日常的工作中使用的是比较少的,但是在MySQL的某些语法中,会用到memory引擎的内存表,它有以下几个特点: 内存表的建...
    99+
    2022-05-27
    MySQL Memory存储引擎 MySQL 存储引擎
  • mysql存储引擎相关知识介绍
    不知道大家之前对类似mysql存储引擎相关知识介绍的文章有无了解,今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完mysql存储引擎相关知识介绍你一定会有所收获的。mysql的物理...
    99+
    2022-10-18
  • MySql 存储引擎和索引相关知识总结
    存储引擎 什么是数据库存储引擎? 数据库引擎是数据库底层软件组件,不同的存储引擎提供不同的存储机制,索引技巧,锁定水平等功能,使用不同的数据库引擎,可以获得特定的功能 如何查看引擎? --如何查看数据库支持的引...
    99+
    2022-05-11
    MySql 存储引擎 MySql 索引 MySql 存储引擎和索引
  • 掌握MySQL密码管理、存储引擎及事务相关知识
    下文主要给大家带来MySQL密码管理、存储引擎及事务相关知识,希望这些内容能够带给大家实际用处,这也是我编辑MySQL密码管理、存储引擎及事务相关知识这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。...
    99+
    2022-10-18
  • 关于Mysql的四种存储引擎
    目录前言存储引擎查看InnoDB存储引擎MyISAM存储引擎MEMORY存储引擎存储引擎的选择前言 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建...
    99+
    2023-05-19
    MySQL 引擎 MySQL存储引擎
  • mysql关于memory引擎的表的总结
    参见官方文档https://dev.mysql.com/doc/refman/5.7/en/memory-storage-engine.html 总结 1、memory引擎表数据只存...
    99+
    2022-10-18
  • MySQL 储存引擎知识点
    一:MySQL 存储引擎概述 1.1 什么是存储引擎:   """MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的...
    99+
    2018-08-17
    MySQL 储存引擎知识点
  • MySQL存储引擎基础知识
    在之前的文章中我们说过MySQL事务,现在大家都应该知道了MySQL事务了吧,还记得事务的ACID原则吗?不记得的童鞋可以回顾一下《MySQL之事务初识》,其实呀,更严谨一点的话,应该是MySQL Inno...
    99+
    2022-10-18
  • MySql索引相关知识介绍
    下面一起来了解下MySql索引相关知识,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySql索引相关知识这篇短内容是你想要的。          &n...
    99+
    2022-10-18
  • MySQL的两种存储引擎MyISAM和InnoDB相关介绍
    下面讲讲关于MySQL的两种存储引擎MyISAM和InnoDB,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完MySQL的两种存储引擎MyISAM和InnoDB这篇文章你一定会有...
    99+
    2022-10-18
  • 关于MySQL的体系结构及存储引擎图解
    目录一、mysql的体系结构① 结构图② 各结构的功能二、存储引擎① 简介及支持② 建表时,指定引擎三、各存储引擎的特点InnoDBMyISAMMemory四、存储引擎的选择ACID一、MySQL的体系结构 ① 结构图 ...
    99+
    2023-05-23
    MySQL体系结构 MySQL存储引擎
  • MySQL索引的相关知识点有哪些
    本篇内容介绍了“MySQL索引的相关知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!索引介绍索引...
    99+
    2022-10-18
  • MySQL 锁的相关知识总结
    MySQL中的锁 锁是为了解决并发环境下资源竞争的手段,其中乐观并发控制,悲观并发控制和多版本并发控制是数据库并发控制主要采用的技术手段(具体可见我之前的文章),而MySQL中的锁就是其中的悲观并发控制。 MySQ...
    99+
    2022-05-14
    MySQL
  • mysql中Memory存储引擎的特性有哪些
    这篇文章给大家分享的是有关mysql中Memory存储引擎的特性有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Memory表的每个表可以有多达32个索引。每个索引16列,以及500字节的最大键长度。存储引擎...
    99+
    2023-06-25
  • 如何进行MySQL Memory 存储引擎的浅析
    本篇文章给大家分享的是有关如何进行MySQL Memory 存储引擎的浅析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。前言 需求源自项目中...
    99+
    2022-10-19
  • MySQL指令知识的相关学习
    下文主要给大家带来MySQL指令知识的相关学习,希望这些内容能够带给大家实际用处,这也是我编辑MySQL指令知识的相关学习这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。登陆命令C:\Program...
    99+
    2022-10-18
  • mysql中的键和索引相关知识点有哪些
    本篇内容介绍了“mysql中的键和索引相关知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、主...
    99+
    2022-10-18
  • mysql中关于覆盖索引的知识点总结
    如果一个索引包含(或覆盖)所有需要查询的字段的值,称为‘覆盖索引'。 覆盖索引是一种非常强大的工具,能大大提高查询性能,只需要读取索引而不需要读取数据,有以下优点: 索引项通常比记录要小,所以MySQL访问更少的数据...
    99+
    2022-05-17
    mysql 覆盖索引
  • SqlServer关于分区表的相关知识点有哪些
    这篇文章主要讲解了“SqlServer关于分区表的相关知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SqlServer关于分区表的相关知识点有哪...
    99+
    2022-10-18
  • 关于InnoDB存储引擎text和blob类型的优化
        我们在数据库优化的时候,看到一些表在设计上使用了text或者blob的字段,如果单表的存储空间达到了近上百G或者大几十G,这种情况再去改变和优化就非常难了一、...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作