设为首页 加入收藏

TOP

MySQL的内存表
2015-11-21 01:58:23 来源: 作者: 【 】 浏览:0
Tags:MySQL 内存

这里写图片描述

我们在做网站时,偶然遇到一个问题:网站工作时,有时需要一些不变的资源表,需要根据不同的人的信息,去查表寻找对应需要的数据。<??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPtPJ09rDv7j2yMu2vNDo0qqy6bHto6zQp8LKvs3KrrfW1tjSqsHLo6zI57n7trzKudPDtMXFzNbQtcTK/b7do6zQ1MTcv8+2qLK70NCjrLWryOe5+7TmtKKzyc6q18rUtM7EvP6jrMTHw7S+zbK7xNy3vbHjtcTA+9PDU1FM0+++5LXEwem77rLp0a/M9bz+o6yy6bHttcTL47eou7nQ6NfUvLqx4NC0oaM8L3A+DQo8cD694brPwb249s7KzOK/vMLHo6y1w7P2tcS94cLbvs3KxyZtZGFzaDsmbWRhc2g7xNq05rHtoaM8L3A+DQo8aDMgaWQ9"内存表的特性">内存表的特性

所谓“内存表”,即为数据保存在内存中的MySQL表,使用上和其他表并没有显著区别,主要特点是在MySQL退出后,其数据会自动消失,并不会持久化。

除此以外,内存表可能最大的问题是不支持变长的类型,这使得在建表时要格外小心。

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

内存表可以有非唯一键;

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

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

内存表的建立

建立内存表的时候,在5.5里,需要指定表的引擎类型 ENGINE=MEMORY

CREATE TABLE `test` (
  `id` int(11) AUTO_INCREMENT,
  `name` varchar(255)
) ENGINE=MEMORY DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

其余操作:

-- 删除数据
delete from test;

或者

-- 清空表
truncate table test;

再或者

-- 删除表
drop table test;

内存表的初始化

但数据会在重启后丢失,这点十分不便,为此,我们需要初始化内存表,使得其包含要使用的数据。

使用方法很简单,直接添加到配置文件,比如my.cnf.
添加:
[server] 或者 [mysqld] 或者 [mysqld_safe]
init-file=”Your file location”

请确保init-file指定的脚本每行是一个具体的语句,不要多行写一个语句。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇atitit.流程标准化---mysql启动不.. 下一篇Mysql触发器使用过程中遇到的问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: