现在的位置: 首页 > 综合 > 正文

慎用mysql memory(heap)存储引擎结构

2018年04月15日 ⁄ 综合 ⁄ 共 442字 ⁄ 字号 评论关闭

我们知道 mysql 的 memory存储引擎是将数据和索引完全存放在内存中,如果数据库重启或者死掉数据将无法恢复.所以只能用来暂时的存储.

由于是hash索引所以自然会快一点.

但是之前用它来存过用户session,同步各个机器的session.

发现了一个更严重的问题...

mysql 有一个 variable 是 max_heap_table_size 这个限制了内存表的大小... 在网络上查都说是限制了行大小,这个是错误的,应该是表的整个数据大小

线上的服务对这个值配了个64MB 所以当表已经达到了64MB的时候,就再也无法insert进去数据了...

so 还是用innodb 把buffer开的大一点吧...

查看变量

show variables like 'max_heap_table_size';

查看表信息,里面有表信息

show table status like 'table_name' \G;

里面包括了表的Data_length,Max_data_length,Index_length,Data_free:

抱歉!评论已关闭.