MySQL的内存表

本文探讨了MySQL的内存表在提高网站查询效率中的应用。内存表数据存储于内存中,提供快速访问,但在MySQL退出后数据会丢失。不支持变长类型和BLOB/TEXT列是其局限。可通过指定ENGINE=MEMORY创建,通过配置init-file实现重启后的数据初始化,以保持内存表的数据。
摘要由CSDN通过智能技术生成

这里写图片描述

我们在做网站时,偶然遇到一个问题:网站工作时,有时需要一些不变的资源表,需要根据不同的人的信息,去查表寻找对应需要的数据。

由于每个人都需要查表,效率就十分重要了,如果都使用磁盘中的数据,性能肯定不行,但如果存储成为资源文件,那么就不能方便的利用SQL语句的灵活查询条件,查表的算法还需自己编写。

结合两个问题考虑,得出的结论就是——内存表。

内存表的特性

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

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

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

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

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

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

内存表的建立

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

CREATE TABLE `test` (
  `id` int(11) AUTO_INCREMENT,
  `name` varchar(255)
) ENGINE=MEMORY DEFAULT CHARSET=ut
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值