作家
登录

MySQL MEMORY引擎及性能比对

作者: 来源: 2017-11-07 11:09:48 阅读 我要评论


同事咨询MySQL MEMORY引擎的细节,可否知足需求。没有太多懂得,这里做个体系总结。

  1. CREATE TABLE t (i INT) ENGINE = MEMORY; 

MEMORY存储引擎创建的表数据只能保存在内存。

MySQL宕机、硬件故障或者不测掉落电,都邑造成MEMORY引擎表损掉数据。所以,MEMORY表中的数据来源竽暌冠其他表(可落盘永远保存)用于只读实用,或者用于临时工作起到数据周转。

[a] Implemented in the server (via encryption functions). Data-at-rest tablespace encryption is available in MySQL 5.7 and later.

[b] Implemented in the server, rather than in the storage engine.

[c] Implemented in the server, rather than in the storage engine.

来源: https://dev.mysql.com/doc/refman/5.6/en/memory-storage-engine.html

何时应用MEMORY

  • 临时应用、不重要的数据,例如网站的会话治理懈弛存。可接法术据损掉。
  • 发挥其拜访快、低延迟特点
  • 只读或者大年夜部分是读操作,不合适大年夜量写操作。

机能特点

内存表受限于单线程履行和表级锁引起的┞幅用。在负载增长时限制了可扩大性,特别是写操作。

尽管内存表在内存中处理,在劳碌的办事网上,并不必定比InnoDB表更快,如一般萌芽或者读写场景。特别是,多个会话履行update操作会造成机能低下。

内存表的物理特点

每张内存表会在硬盘上创建一个文件,用于保存表构造(没稀有据)。文件名为以内存表名开端,.frm结尾。

特点

  • 内存表的空间应用小块(small block)。表应用100%动态hash插入。已删除的行放到余暇列表中,下次插入新数据会被应用。
  • 应用定长的行存储格局。变长类型存入内存表需转换为定长。
  • 不支撑BLOB、TEXT类型的列。
  • 内存表支撑自增列(AUTO_INCREMENT)
  • 不克不及在多个会话上共享临时表。

内存表的DDL操作

创建临时表

基于非内存表创建内存表,并将数据拉入到内存表中

  1. mysql> CREATE TABLE test ENGINE=MEMORY 
  2.  
  3. -> SELECT ip,SUM(downloads) AS down 
  4.  
  5. -> FROM log_table GROUP BY ip; 
  6.  
  7. mysql> SELECT COUNT(ip),AVG(down) FROM test; 
  8.  
  9. mysql> DROP TABLE test; 

内存表的最大年夜受限于 max_heap_table_size 参数,默认为16MB。根据场景需本身调剂该参数。

索引

MEMORY存储引擎支撑HASH和BTREE索引。

  1. CREATE TABLE lookup 
  2.     (id INTINDEX USING HASH (id)) 
  3.     ENGINE = MEMORY; 
  4. CREATE TABLE lookup 
  5.     (id INTINDEX USING BTREE (id)) 
  6.     ENGINE = MEMORY; 

每张内存表可创建64个索引,每个索引最大年夜支撑16个列,一个key的长度最大年夜值为3072bytes。

如不雅一个内存表hash索引的键值有很高的反复度,更新键值、删除操作速度都邑明显降低。这种速度降低的程度与键值反复度成正比。您可以应用BTREE索引来规避这个问题。

内存表1行记录占用内存计算公式

内存表可以有非独一键(这是hash索引不常用的功能)。

索引列中可包含NULL值。

加载数据


  推荐阅读

  双11准备买家用打印机 怎么双面打印?

11.11的脚步近了,是不是该囤货了,作为一个资深陪读爸妈是不是预备给本身,哦不,给孩子买一台家用功课打印机,毕竟师长教师如今很多多少都是发电子功课了......特别提示:如不雅小同伙的>>>详细阅读


本文标题:MySQL MEMORY引擎及性能比对

地址:http://www.17bianji.com/lsqh/38542.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)