我们知道 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:
分享到:
2011-09-01 00:43
浏览 590
评论