admin管理员组

文章数量:1657214

内存(memory)表和临时(temporary)表之了解

**临时表(temporary):
1.参数:tmp_table_size 64M(最大容量,表增长到此值,会自动转换为磁盘表)
2.表定义,数据,索引存于内存中
3.到阀值,自动转换为磁盘表,需要进行IO操作,导致DB性能下降
4.存放text,blob类型的数据
5.只存在一次连接中,Mysql断开连接后被删除
6.所有客户端不能共享,否则会提示不存在信息
7.任何存储引擎中
8. Created_tmp_tables 状态值增加表示,在磁盘上有创建临时表或临时表转成磁盘表
语法:
create temporary table tbl() engine=xx default charset=utf8;
创建条件:
1.查询中有排序(order by)和分组(group by)
2.排序中使用过滤重复列(distinct)
3.查询中用sql_small_result选项

**内存表(memory)
1.参数:max_heap_table_size 64M(独立内存表容许最大容量,以防止创建超大内存表导致内存用尽)
2.表定义存于磁盘中,数据和索引在内存中(重启后数据会丢失)
3.到阀值,会报错:数据存放已满
4.不能存放text,blob类型的数据
5.内存表支持auto_increment列,可包含NULL值列索引
6.mysql重启后,主键,自增,索引仍然存在,只是数据丢失
7.不支持事务
8.支持hash和B树索引
9.内存表是表锁,频繁修改,性能会下降
10.仅memory引擎
语法:
create table tbl(xx...xx)engine=memory default charset=utf8;


早期会大量使用内存表作为存储中小型数据,以来来提搞DML速度,减低IO操作,
但现在随着memcache/Nosql应用,内存表逐渐被取代之;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub/26855487/viewspace-763440/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub/26855487/viewspace-763440/

本文标签: 内存MemoryTemporary