memory 存储引擎,通过名字就很容易让人知道,他是一个将数据存储在内存中的存储引擎。memory 存储引擎不会将任何数据存放到磁盘上,仅仅存放了一个表结构相关信息的.frm 文件在磁盘上面。所以一旦 mysql crash 或者主机 crash 之后,memory 的表就只剩下一个结构了。memory 表支持索引,并且同时支持 hash 和 b-tree 两种格式的索引。由于是存放在内存中,所以 memory 都是按照定长的空间来存储数据的,而且不支持 blob 和 text类型的字段。memory 存储引擎实现页级锁定。
既然所有数据都存放在内存中,那么他对内存的消耗量是可想而知的。在 mysql 的用户手册上面有这样一个公式来j计算memory 表实际需要消耗的内存大小:
sum_over_all_btree_keys(max_length_of_key + sizeof(char*) * 4)
+ sum_over_all_hash_keys(sizeof(char*) * 2)
+ align(length_of_row+1, sizeof(char*))
以上就是mysql存储引擎之memory存储引擎的介绍的内容。