我是靠谱客的博主 个性鞋垫,最近开发中收集的这篇文章主要介绍innodb和 memory的区别innodb和 memory的区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

innodb和 memory的区别

  • InnoDB 表的数据总是有序存放的,而内存表的数据就是按照写入顺序存放的;
  • 当数据文件有空洞的时候,InnoDB 表在插入新数据的时候,为了保证数据有序性,只能在固定的位置写入新值,而内存表找到空位就可以插入新值;
  • 数据位置发生变化的时候,InnoDB 表只需要修改主键索引,而内存表需要修改所有索引;
  • InnoDB 表用主键索引查询时需要走一次索引查找,用普通索引查询的时候,需要走两次索引查找。而内存表没有这个区别,所有索引的“地位”都是相同的。
  • InnoDB 支持变长数据类型,不同记录的长度可能不同;
  • 内存表不支持 Blob 和 Text 字段,并且即使定义了 varchar(N),实际也当作 char(N),也就是固定长度字符串来存储,因此内存表的每行数据长度相同。

存储方式

  • InnoDB 引擎把数据放在主键索引上,其他索引上保存的是主键 id。这种方式,我们称之为索引组织表(Index Organizied Table)。
  • Memory 引擎采用的是把数据单独存放,索引上保存数据位置的数据组织形式,我们称之为堆组织表(Heap Organizied Table)。

生产不推荐使用内存表

  • 锁粒度 : 内存表只支持表锁,不支持行锁
  • 数据持久化问题:每次重启或者断电的时候,内存里面的数据都会被清空

什么时候使用内存表

  • 把一些临时表改为内存表,(写速度快,单体查询快,数据量不多)

最后

以上就是个性鞋垫为你收集整理的innodb和 memory的区别innodb和 memory的区别的全部内容,希望文章能够帮你解决innodb和 memory的区别innodb和 memory的区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部