`
dannyhz
  • 浏览: 366893 次
  • 性别: 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内存表来代替php session的类

    mysql内存表实现替换php session类,效果什么大家可以自己测试下。

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

    临时表和内存表都可以人工创建,但临时表更多的作用是系统自己创建后,组织数据以提升性能,如子查询,临时表在多个连接之间不能共享。这里只讨论内存表

    一张图弄清mysql内存结构

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

    MySql内存数据库.pdf

    MySql内存数据库.pdf

    MySQL8.0内存相关参数总结

    主要介绍了MySQL8.0内存相关参数总结,帮助大家更好的理解和学习mysql,感兴趣的朋友可以了解下

    MySql_内存数据库

    MySql的内存数据库的信息 数据库基本操作

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

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

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

    MySQL内存统计的分析与实践

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

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

    MySQL 内存分析

    MySQL 内存分析 http://www.ossez.com/forum.php?mod=viewthread&tid=26837&fromuid=426 (出处: OSSEZ)

    MySQL优化中的内存计算公式

    Mysql内存计算公式,有一定的参考意义,存起来

    mysql内存原理与数据结构

    mysql完整session接受 mysql内存原理 mysql数据结构 mysql架构设想

    mysql创建内存表的方法

    当内存表中的数据大于max_heap_table_size设定的容量大小时,mysql会转换超出的数据存储到磁盘上,因此这是性能就大打折扣了,所以我们还需要根据我们的实际情况调整max_heap_table_size,例如在.cnf文件中[mysqld]...

    mysql使用疑难问题汇总

    教程名称:mysql使用疑难问题汇总课程目录:【】10个节省时间的MySQL命令【】DB2环境变量管理方法集【】Linux下MySQL整个数据库的备份与还原【】MaxDB数据库和MySQL数据库的主要差别【】MySQL内存表的特性与使用介绍...

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

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

    MySQL内存使用的查看方式详解

    本文主要给大家介绍了关于MySQL内存使用查看的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 使用版本:MySQL 5.7 官方文档 在performance_schema有如下表记录内存使用情况 mysql> ...

    Linux下Mysql的配置

    Linux下Mysql的配置Linux下Mysql的配置Linux下Mysql的配置Linux下Mysql的配置Linux下Mysql的配置Linux下Mysql的配置Linux下Mysql的配置Linux下Mysql的配置Linux下Mysql的配置Linux下Mysql的配置Linux下Mysql的配置...

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

    此配置是老男孩生产线上使用的配置,这配置已经优化的不错了,如果你的mysql没有什么特殊情况的话,可以直接使用该配置参数 对各参数添加了中文说明 ======= back_log = 600 #在MYSQL暂时停止响应新请求之前,短...

Global site tag (gtag.js) - Google Analytics