Memory引擎表的特点
- Memory表是堆组织表,对应的Iondb是索引组织表。
- Memory索引顺序是按照写入顺序,Innodb是按照主键顺序
- Memory的索引存放规则决定这他所有索引是一样的没有主键概念
- Memory的索引和数据是分开存放的,在主键ID索引里,存的是每个数据的位置,且顺序是按照hash顺序。Innodb是按照B+树存放的
- Memory不支持blog和Text字段,所有行数的长度都相同。(要充分的利用内存嘛~)
- Memory数据出现空洞时候可以任意位置插入数据,Innodb为了保证索引顺序只能在后面递增插入数据
- Memory数据位置发生改变需要改所有的索引,而Innodb只需要改主键位置,
不推荐用Mermory在生产环境的原因
- 锁粒度不够:不支持行锁,性能会很差,往往不如Innodb
- 由于Mysql重启后会删除Memory表数据,数据持久性会有问题
- 尤其是双M架构,当备库重启后,会同步binlog给主库把表清空