`
dannyhz
  • 浏览: 394821 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

MySQL的内存表

 
阅读更多
引用


“内存表”顾名思义创建在内存中的表,真是这样吗?其实不然,MySQL的内存表,表结构创建在磁盘上,数据存放在内存中,所以当MySQL启动着的时候,这个表是存在的,数据也是存在的,如果用户有查看这个表的权限,在所有会话里面,都可以访问这个内存表的数据;当MySQL重启后,数据消失,结构还存在。

内存表的创建:

CREATE TABLE test(
  id int(10),
  num int(10)
) ENGINE=MEMORY DEFAULT CHARSET=utf8;
查看是否创建成功:

show tables;
使用完内存表后,如果我们想释放掉占用掉的内存,可以有两种方法:
-- 删除数据
delete from test;
或者

-- 清空表
truncate table test;
再或者
-- 删除表
drop table test;
对于我们常用的功能来说,内存有以下特征:

1.对于varchar等变长类型,内存表使用固定的长度来存放;

2.内存表可以有非唯一键;

3.内存表不能包含BLOB或者TEXT列;

4.内存表支持AUTO_INCREMENT列;

5.内存表支持插入延迟,使读取优先;

6.非临时内存表和其它非内存表一样在所有客户端直接共享;

我们使用内存表的时候,需要注意以下几个方面:

1.服务器内存足够大;

2.我们创建的内存表和MySQL内部临时表有所不同:

      内存表的数据存放在内存中,而内部临时表(我们的query语句产生的)在恰当的时候存放在内存中,当内部临时表变得很大时,MySQL会自动地把它转化为 在磁盘上存储的表,而我们创建的内存表,却不会自动转换。

3.当我们单独地delete from 某个内存表的时候,不会回收内存;只有当整个表被delete的时候,才会回收内存;

4.在MySQL的主从服务器上,内存表可以被复制

参考资料:

http://dev.mysql.com/doc/refman/5.0/en/memory-storage-engine.html

分享到:
评论

相关推荐

    MySQL内存表的特性与使用介绍

    MySQL内存表,也称为HEAP表,是一种存储引擎,它将数据存储在内存中,以实现快速的读写操作。这种类型的表对于处理大量小规模数据的查询特别有用,因为它们能够利用内存的高速访问来提升性能。在MySQL中,内存表的...

    Mysql构造百万条测试数据

    1. 生成思路:利用 MySQL 内存表插入速度快的特点,先利用函数和存储过程在内存表中生成数据,然后再从内存表插入普通表中。 知识点:MySQL 的内存表(Memory Engine)是一种特殊的存储引擎,可以将数据存储在内存...

    MySQL8.0内存相关参数总结

    MySQL8.0内存相关参数是优化数据库性能的关键因素,它们决定了数据库如何管理和使用内存资源,以提高查询效率和系统稳定性。下面将详细解释几个重要的内存参数及其作用。 1. **innodb_buffer_pool_size**: 这是...

    一张图弄清mysql内存结构

    一张图弄清mysql内存结构,内存中都有什么,多mysql原理及后续问题排查、优化很有帮助,推荐给大家

    MySQL 内存分析

    在进行MySQL内存分析时,首先需要了解MySQL的内存结构和工作机制,这对于优化MySQL的性能至关重要。内存分配问题在容量规划阶段常常被提出,人们会疑惑应该为MySQL以及整个系统分配多少内存。通常互联网上有许多不...

    MySQL错误代码查询

    MySQL内存表(MEMORY引擎)大小有限制,当达到最大容量时,会触发此错误。考虑增大内存表大小限制,或使用其他存储引擎。 通过了解这些常见的MySQL错误代码,你可以更快地诊断和解决问题,提高数据库操作的效率。在...

    -MySQL内存统计的分析与实践.pptx

    MySQL内存统计的分析与实践是数据库管理员(DBA)在日常工作中必须掌握的一项关键技能。内存管理对于MySQL数据库的性能有着深远影响,而有效地分析和理解内存使用情况可以帮助优化数据库性能,预防并解决内存溢出等...

    mysql 学习总结

    为了解决这个问题,可以使用如Redis这样的持久化内存数据库,或者设置MySQL内存表的自动持久化策略。 在实际应用中,合理地创建和使用索引,选择合适的存储引擎,以及理解不同数据库类型的特点,都是优化数据库性能...

    MySql内存数据库.pdf

    本文档将探讨MySQL中内存数据库的创建、数据表的创建、数据查询以及数据操作的相关知识点。 1. 数据库操作命令 在MySQL中,可以使用SQL命令来对数据库进行操作。例如: - `CREATE DATABASE;`:创建一个新的数据库...

    Mysql临时表和派生表

    ### MySQL临时表与派生表详解 #### 一、MySQL临时表 **1.1 临时表概述** MySQL中的临时表是一种特殊的表类型,主要用于存储临时数据或中间结果集,适用于那些需要多次查询同一结果集的场景。根据存储位置的不同,...

    既然Mysql有内存引擎Memory,为什么还需要Redis

    既然Mysql有内存引擎Memory,为什么还需要Redis 随着对于Mysql的了解,我们知道Mysql有三种常用的数据引擎,分别是:MYISAM,INNODB,MEMORY。其中由于MYISAM不支持事务,行锁等原因的限制,被MySQL官方也逐渐放弃,...

    MySQL优化中的内存计算公式

    本文将详细介绍MySQL内存计算公式,并基于该公式对相关参数进行深入解析。 #### 二、MySQL内存计算公式 根据所提供的内容,MySQL内存占用计算公式如下: \[ \text{MySQLUsedMem} = \text{KeyBufferSize} + \text{...

    2G内存的MYSQL数据库服务器优化

    ### 2G内存的MySQL数据库服务器优化 在IT行业中,对于资源有限的环境进行数据库优化是一项挑战性工作,尤其是在仅有2GB内存的情况下对MySQL数据库服务器进行优化。这种优化旨在提高性能的同时确保系统的稳定运行。 ...

    MySQL OOM(内存溢出)的解决思路

    OOM全称”Out Of Memory”,即内存溢出。 内存溢出已经是软件开发历史上存在了近40年的“老大难”问题。在操作系统上运行各种软件时,软件所需申请的内存远远超出了物理内存所承受的大小,就叫内存溢出。 内存溢出...

    mysql服务性能优化my_cnf配置说明详解16G内存[参考].pdf

    MySQL 服务性能优化 My.cnf 配置说明详解(16G 内存) MySQL 是当前使用最广泛的开源数据库管理系统之一,高性能的 MySQL 服务器配置是每个开发者和 DBA 都需要关心的问题。下面是 MySQL 服务性能优化的 My.cnf ...

    MySQL大表性能优化方案 和 MySQL高性能表设计规范

    在数据库管理领域,MySQL是广泛使用的开源关系型数据库系统,尤其在处理大数据量时,其性能优化和高效表设计显得尤为重要。本篇文章将深入探讨针对MySQL大表的性能优化策略以及如何遵循高性能的表设计规范。 一、...

    【荐】mysql服务性能优化—my.cnf_my.ini配置说明详解(16G内存)

    本文档旨在详细介绍一套已在生产环境中经过验证、适用于16GB内存环境下的MySQL服务性能优化方案。通过对my.cnf/my.ini配置文件的各项关键参数进行中文注释与解析,帮助DBA及运维人员更好地理解每个配置项的作用及其...

Global site tag (gtag.js) - Google Analytics