`
ssxxjjii
  • 浏览: 948385 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Mysql Memory引擎的简单应用

阅读更多

memory存储引擎(老版本也叫做heap存储引擎),顾名思义是在内存中存储所有的数据,它具有以下两个明显特征:   

  • 内存中存储数据,非常高速;
  • mysql关闭后所有数据消失,mysql启动时会创建空表;


基于上面两个重要特征,我们一般用它来存储一些在短时间内需要高速访问但是无需在磁盘持久化的数据,例如在单点登录(SSO)的一种解决方案中有一个非常适合的应用场景:用户从网站A跳转到网站B,这时候网站A需要为此次跳转生成一个令牌并发送给网站B,此时我们可以把令牌存储到内存表中,网站B接受到令牌之后,会通过一个服务器端请求网站A来验证令牌的正确性:

  • SSO的整个过程注重性能,需要高效访问;
  • 网络跳转的速度是很快的,因此令牌的生命周期很短,验证一次之后为了防止重复使用,需要失效该令牌,因此无需持久化存储。(根据经验,一个令牌的生命周期往往只有几秒)

当然,memory存储引擎也是一个绝佳的cache解决方案,本身jdbc操作就很容易被java程序员接受;而且可以对已有的一些程序在极少改写代码的情况下来提高性能,例如对一些常用资源的查询如省市信息,如果以往是通过直接查询数据,现在改为从内存表中读取,几乎是没有任何改造成本的;且mysql的易用性也免去了对其他cache服务器的学习成本。


如何创建内存表
    创建内存表非常的简单,只需注明 ENGINE= MEMORY 即可:
    CREATE TABLE  `tablename` ( `columnName` varchar(256) NOT NUL) ENGINE=MEMORY DEFAULT CHARSET=latin1 MAX_ROWS=100000000;

 

注意
    当内存表中的数据大于max_heap_table_size设定的容量大小时,mysql会转换超出的数据存储到磁盘上,因此这是性能就大打折扣了,所以我们还需要根据我们的实际情况调整max_heap_table_size,例如在.cnf文件中[mysqld]的下面加入:
        max_heap_table_size = 2048M
    另外在建表语句中还可以通过MAX_ROWS来控制表的记录数。

分享到:
评论

相关推荐

    mysql存储引擎介绍

    除了 MyISAM 和 InnoDB 之外,MySQL 还提供了其他几个存储引擎,如 MEMORY、MERGE 等。 MEMORY 存储引擎是一种基于内存的存储引擎,数据存储在内存中,访问速度非常快,但是数据不是持久性的,服务器重启后数据将会...

    MySQL存储引擎简介

    在众多数据库系统中,MySQL独树一帜,提供了多种存储引擎供用户选择,使得开发者可以根据应用程序的具体需求选择最合适的存储引擎。这些存储引擎,例如MyISAM、InnoDB、BDB、MEMORY等,各有其特定的特性与适用场景,...

    MySQL数据库引擎快速指导

    HEAP引擎,又称MEMORY引擎,用于创建仅存在于内存中的临时表,执行速度快,但数据不稳定且在系统关闭时会丢失。它适合处理临时数据或需要快速响应的查询。务必在使用完毕后删除表格以避免资源浪费。 InnoDB和BDB...

    mysql中的表引擎

    4. **Heap** 或Memory引擎,将数据存储在内存中,提供极高的读写效率,但数据的持久性较差,一旦MySQL服务停止,存储的数据会丢失。适用于临时表或者对数据丢失不敏感的场景。 5. **Berkley DB (BDB)** 引擎则提供...

    第6章MySQL存储引擎与数据库.docx

    MySQL存储引擎是数据库管理系统的核心组件,它决定了数据如何在MySQL中存储、检索和管理。不同的存储引擎具有不同的特性和用途,以适应各种应用场景。在MySQL中,存储引擎主要负责数据的物理存储方式、事务处理、...

    MySQL课程之MySQL存储引擎入门

    MySQL提供了多种存储引擎,包括MyISAM、InnoDB、BDB、Memory、Merge、Archive、Federated、BLACKHOLE、Cluster/NDB、CSV和Example等。其中,InnoDB、NDB和BDB支持事务处理,提供了一定的数据一致性保障,而其他引擎...

    Mysql数据库引擎大揭秘

    目前,MySQL 提供多种数据库引擎,如InnoDB、MyISAM和Memory,以适应不同应用场景。 1.3 数据库引擎分类和特点 - 关系型数据库引擎:如MySQL,使用表格结构,支持SQL,强调数据一致性,适用于结构化数据存储。 - 非...

    深入解析:MySQL存储引擎的奥秘

    通过本文的详细介绍,我们深入了解了MySQL存储引擎的重要性以及不同存储引擎的特点和应用场景。选择合适的存储引擎对于优化MySQL数据库性能和确保数据一致性至关重要。希望本文能够帮助您更好地理解和运用MySQL存储...

    38.都说InnoDB好那还要不要使用Memory引擎?1

    MySQL数据库中,InnoDB和Memory引擎是两种常见的存储引擎,它们各自具有独特的特性和适用场景。InnoDB以其事务处理能力、行级锁定以及对ACID(原子性、一致性、隔离性、持久性)的支持而广受好评,但Memory引擎也有...

    MySQL存储引擎源码学习.zip

    MySQL支持多种存储引擎,每个引擎都有其独特的特性和适用场景,例如InnoDB用于事务处理,MyISAM适合读取密集型应用,Memory引擎用于临时表等。 在源码学习过程中,首先会接触到的是存储引擎架构。MySQL采用插件式...

    MySQL存储引擎及其面向的数据库应用[收集].pdf

    MySQL提供多种存储引擎,每种引擎针对不同的数据库应用场景进行了优化。以下是几种常见的MySQL存储引擎及其特点: 1. **InnoDB存储引擎**: - **事务支持**:InnoDB是支持ACID(原子性、一致性、隔离性、持久性)...

    MySQL存储引擎配置与SQL查询

    ### MySQL存储引擎配置与SQL查询 #### 一、MySQL存储引擎的配置 在MySQL数据库管理系统中,存储引擎是用于组织和管理数据的方式。不同的存储引擎提供了不同的特性,例如事务处理能力、索引类型等。因此,了解如何...

    MySQL数据库存储引擎探析.docx

    本文将深入探讨 MySQL 数据库中常用的存储引擎,包括 InnoDB、MyISAM、Memory(HEAP)和 Archive 等。 一、InnoDB 存储引擎 InnoDB 是 MySQL 的默认存储引擎,它提供了强大的事务处理、行级锁定和外键约束功能。...

    Mysql 表类型(存储引擎)

    - InnoDB是MySQL的默认存储引擎,它支持事务处理和行级锁定,这使得InnoDB在并发环境下表现出色,适用于需要高数据一致性和事务安全性的应用。 - InnoDB使用聚集索引,主键值被存储在每个数据行中,如果没有指定...

    mysql插件式存储引擎体系结构

    MySQL的插件式存储引擎体系结构是一种灵活的设计模式,允许用户根据具体的应用场景选择最适合的存储引擎。这一架构的最大优势在于它允许应用程序和数据库管理员(DBA)不必关心底层的具体实现细节,从而简化了应用开发...

    mysql数据存储引擎介绍ppt

    MEMORY引擎将数据存储在内存中,适用于临时表或对速度有极高要求的应用。NDB Cluster则提供了高可用性和可扩展性,适合分布式部署。 了解这些存储引擎的特性和适用场景,对于数据库管理员和开发者来说至关重要,...

Global site tag (gtag.js) - Google Analytics