返回顶部
首页 > 资讯 > 数据库 >mysql关于memory引擎的表的总结
  • 827
分享到

mysql关于memory引擎的表的总结

2024-04-02 19:04:59 827人浏览 泡泡鱼
摘要

参见官方文档https://dev.Mysql.com/doc/refman/5.7/en/memory-storage-engine.html 总结 1、memory引擎表数据只存

参见官方文档https://dev.Mysql.com/doc/refman/5.7/en/memory-storage-engine.html


总结

1、memory引擎表数据只存放在内存中,插入数据后,文件也只有表结构文件,没有表数据文件, 重启后,数据丢失 ,但是表结构还在,表结构文件也还在

2、memory引擎表,一个会话修改了数据,其他会话可以立即看到修改后的数据,和oracle的临时表完全不同

3、要清空memory引擎表,delete、truncate、drop、重启都可以,没有类似oracle这样的flush buffer_cache的直接清空内存的方法

4、memory引擎表最大大小受参数max_heap_table_size的限制,具体见官方文档

Https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_heap_table_size

5、也就是说,momory引擎的表,除了这两点,表数据放在内存中、重启后数据丢失,其他一切都和普通表一样。

6、生产环境不建议使用memory引擎,因为它有两个最大的缺点,其一它只有表没有行锁,这样一旦表有更新操作,就会堵塞其他会话对这张表的读写。其二它的数据存放在内存中,一旦在M-S架构中,S从库重启,S从库数据就会丢失,但是M主库数据还在,继而影响主从同步,因为重启后如果收到一条update语句后,主库正常执行,把该语句发送到从库就会报错找不到更新的行,导致主从同步停止。

7、如果非要用memory引擎的优点,把数据存放在内存中,可以考虑使用memory引擎临时表,正好可以避免上面6的两个缺点。




实验过程

mysql> use test1

mysql> create table tab3 (hid int) engine memory;

mysql> insert into tab3 values (1);

mysql> insert into tab3 values (1);

mysql> insert into tab3 values (1);

mysql> select count(*) from tab3;

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

| count(*) |

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

|        3 |

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


此时查看tab3的数据文件,发现只有表结构

[root@mydb ~]# ll /var/lib/mysql/test1 |grep tab3

-rw-r----- 1 mysql mysql    8558 Sep 30 11:00 tab3.frm


开另一个会话

mysql> select count(*) from test1.tab3;

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

| count(*) |

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

|        3 |

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


重启数据库,再查看tab3的数据

mysql> select count(*) from test1.tab3;

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

| count(*) |

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

|        0 |

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


此时查看tab3的数据文件,表结构还在

[root@mydb ~]# ll /var/lib/mysql/test1 |grep tab3

-rw-r----- 1 mysql mysql    8558 Sep 30 11:00 tab3.frm





会话1

mysql> create table t1 (hid int);

mysql> create table t2 (hid int) engine=memory;

mysql> insert into t1 values(1),(2),(3);

mysql> insert into t2 values(1),(2),(3);

mysql> update t1 set hid=sleep(60) where hid=1;


会话2

mysql> select * from t1;

+------+

| hid  |

+------+

|    1 |

|    2 |

|    3 |

+------+

正常执行,不堵塞


会话1

mysql> update t2 set hid=sleep(60) where hid=1;


会话2

mysql> select * from t2;

--堵塞,直到会话1执行完毕


您可能感兴趣的文档:

--结束END--

本文标题: mysql关于memory引擎的表的总结

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

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

猜你喜欢
  • mysql关于memory引擎的表的总结
    参见官方文档https://dev.mysql.com/doc/refman/5.7/en/memory-storage-engine.html 总结 1、memory引擎表数据只存...
    99+
    2024-04-02
  • 关于MySQL Memory存储引擎的相关知识
    关于Memory存储引擎的知识点     Memory存储引擎在日常的工作中使用的是比较少的,但是在MySQL的某些语法中,会用到memory引擎的内存表,它有以下几个特点: 内存表的建...
    99+
    2022-05-27
    MySQL Memory存储引擎 MySQL 存储引擎
  • MySQL MyISAM引擎和InnoDB引擎对于单表大小限制的总结
    MyISAM引擎: 默认情况下,MySQL创建的MyISAM表允许的最大尺寸为4GB。你可以使用SHOW TABLE STATUS语句或myisamchk -dv tbl_name检查表的最大尺寸。&nbs...
    99+
    2024-04-02
  • MySql 存储引擎和索引相关知识总结
    存储引擎 什么是数据库存储引擎? 数据库引擎是数据库底层软件组件,不同的存储引擎提供不同的存储机制,索引技巧,锁定水平等功能,使用不同的数据库引擎,可以获得特定的功能 如何查看引擎? --如何查看数据库支持的引...
    99+
    2022-05-11
    MySql 存储引擎 MySql 索引 MySql 存储引擎和索引
  • 关于MySQL的体系结构及存储引擎图解
    目录一、mysql的体系结构① 结构图② 各结构的功能二、存储引擎① 简介及支持② 建表时,指定引擎三、各存储引擎的特点InnoDBMyISAMMemory四、存储引擎的选择ACID一、MySQL的体系结构 ① 结构图 ...
    99+
    2023-05-23
    MySQL体系结构 MySQL存储引擎
  • 关于Mysql的四种存储引擎
    目录前言存储引擎查看InnoDB存储引擎MyISAM存储引擎MEMORY存储引擎存储引擎的选择前言 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建...
    99+
    2023-05-19
    MySQL 引擎 MySQL存储引擎
  • mysql中Memory引擎指的是什么
    这篇文章主要介绍mysql中Memory引擎指的是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql中Memory引擎1、说明所有数据保存在内存中,不需要磁盘IO,比MyISAM快一个数量级。支持Hash索...
    99+
    2023-06-15
  • 关于MySQL InnoDB表的二级索引是否加入主键的总结
    1.对于MySQL InnoDB表的二级索引是否加入主键,官方也有明确的说明,建议线上MySQL的二级索引创建时强制加入主键所有的列,可以做到所有的MySQL 版本统一。 2.MySQL 5.6.9之前...
    99+
    2024-04-02
  • MySQL 常用引擎总结分享
    目录1.InnoDB1.1 优缺点分析2.MyISAM2.1 优缺点分析3.MEMORY3.1 优缺点分析4.查看和设置存储引擎4.1 查看存储引擎4.2 设置存储引擎总结前言: M...
    99+
    2024-04-02
  • mysql中关于覆盖索引的知识点总结
    如果一个索引包含(或覆盖)所有需要查询的字段的值,称为‘覆盖索引'。 覆盖索引是一种非常强大的工具,能大大提高查询性能,只需要读取索引而不需要读取数据,有以下优点: 索引项通常比记录要小,所以MySQL访问更少的数据...
    99+
    2022-05-17
    mysql 覆盖索引
  • mysql关于db.opt文件的总结
    总结 1、create database时会自动生成一个文件db.opt,存放的数据库的默认字符集,show create database时显示数据库默认字符集即db.opt中字符集 2、这...
    99+
    2024-04-02
  • 【mysql】索引相关的个人总结
    重点参考: MySQL索引原理及慢查询优化 (美团技术分享网站):原理、示例优化都写的很好。 索引很难么?带你从头到尾捋一遍MySQL索引结构,不信你学不会!:原理写的很好。 【从入门到入土】令人脱发的数据库底层设计:很详细...
    99+
    2016-06-26
    【mysql】索引相关的个人总结
  • 关于Mysql索引的数据结构
    索引的数据结构 1、为什么使用索引 概念: 索引是存储索引用于快速找到数据记录的一种数据结构,就好比一本书的目录部分,通过目录中对应的文章的页码,便可以快速定位到需要的文章,Mysql 中也是一样的道理,进行数据查找时首先查看查询条件是否...
    99+
    2017-04-22
    关于Mysql索引的数据结构
  • 如何进行MySQL Memory 存储引擎的浅析
    本篇文章给大家分享的是有关如何进行MySQL Memory 存储引擎的浅析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。前言 需求源自项目中...
    99+
    2024-04-02
  • mysql中Memory存储引擎的特性有哪些
    这篇文章给大家分享的是有关mysql中Memory存储引擎的特性有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Memory表的每个表可以有多达32个索引。每个索引16列,以及500字节的最大键长度。存储引擎...
    99+
    2023-06-25
  • MySQL Memory存储引擎的优势及性能测试
    本篇内容主要讲解“MySQL Memory存储引擎的优势及性能测试”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL Memory存储引擎的优势及性能测试...
    99+
    2024-04-02
  • 关于jboss配置的总结
    安装/配置apache 2.2.4 和 mod_jk1.1配置负载均衡2、安装/配置jboss2.1 安装jdk1.5.112.2 解压jboss2.3 修改server.xml ,适应负载均衡。2.4 修改server.xml ,配置支持...
    99+
    2023-06-03
  • PHP 弱引用的相关总结
    目录什么是弱引用WeakReference注意测试代码:之前的文章中,我们已经学习过引用和引用传值相关的知识。我们知道,PHP 中没有纯引用(指针),不管是对象,还是用引用符号 &a...
    99+
    2024-04-02
  • MySQL存储引擎MyISAM与InnoDB区别总结整理
    1、MySQL默认存储引擎的变迁 在MySQL 5.1之前的版本中,默认的搜索引擎是MyISAM,从MySQL 5.5之后的版本中,默认的搜索引擎变更为InnoDB。 2、MyISAM与InnoDB存储引擎...
    99+
    2024-04-02
  • sqlserver关于filestream文件流、filetable文件表的总结
    个人理解: FileStream、Filetable和Oracle的外部表有点像,但又不完全像,相似点都是表中的实际数据存放在文件系统中,表只记录元数据。 Oracle外部表的数据存放在文件系统中,使用d...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作