设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 站长学院 > MySql教程 > 正文

什么时候可以考虑利用MySQL MEMORY引擎

发布时间:2022-03-29 10:57 所属栏目:115 来源:互联网
导读:通常使用MEMORY涉及到以下特性: 1.操作相关的短暂的,非重要数据的管理或者cache,当MySQL进程夯住或服务重启,MEMORY表的数据就会丢失。 2.内存存储访问快速,并且延迟低。数据可以填充到内存不会导致操作系统swap到虚拟内存。 3.只读或者读多的数据访问模
      通常使用MEMORY涉及到以下特性:
1.操作相关的短暂的,非重要数据的管理或者cache,当MySQL进程夯住或服务重启,MEMORY表的数据就会丢失。
2.内存存储访问快速,并且延迟低。数据可以填充到内存不会导致操作系统swap到虚拟内存。
3.只读或者读多的数据访问模式。
      MySQL Cluster提供和MEMORY相似的功能来提高性能,但提供MEMORY不支持的额外的特性,例如:
1.行级锁并且多线程操作,client降低争用。
2.可扩展性
3.数据持久性的后台操作
4.shared-nothing的结构,多host操作不会有单点错误。
5.自动数据分布,应用程序不需要参与用户sharding或者分区解决方案。
6.支持可变长字段,MEMORY不支持。
 
     如果MEMORY表hash索引的列包含在很多索引中,date表字段的值会影响性能。性能影响和被几个索引引用有关。你可以使用b树索引来避免问题。
     MEMORY表可以是非唯一的key。
     索引列的值可以是null
  
MEMORY表的物理特性:
MEMORY存储引擎都有个相关的磁盘文件,用来保存表定义。表名.frm。
MEMORY表有以下几个特性:
1.MEMORY表使用小的block,表使用动态hash存储,没有额外的key空间。删除行把空间放到一个链表。当你插入的时候会重新使用。MEMORY表在插入和删除混合没有什么问题。
2.内存表固定长度。可变长度类型比如varchar也以固定长度保存。
3.内存表不能包含BLOB,TEXT列
4.MEMORY支持AUTO_INCREMENT列
5.没有临时内存表可以被所有客户端共享,可其他临时表一样。

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读