`
ssxxjjii
  • 浏览: 931750 次
  • 性别: 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数据库入门视频教程-101-MEMORY存储引擎

    动力节点的杜老师讲述的mysql教程,详细讲解了MySQL的相关知识,包括MySQL概述,MySQL应用环境,MySQL系统特性,MySQL初学基础,MySQL管理工具,如何安装MySQL及MySQL新特性,通过观看可掌握MySQL全套知识。

    2021年MySQL高级教程视频.rar

    07.MySQL高级存储引擎Memory与Merge特性.avi 08.MySQL高级存储引擎选择原则.avi 09.MySQL高级优化SQL步骤SQL执行频率.avi 10.MySQL高级优化SQL步骤定位低效SQL.avi 11.MySQL高级优化SQL步骤explain指令介绍.avi 12....

    MySQL Memory 存储引擎浅析

    需求源自项目中的MemCache需求,开始想用MemCached(官方站点:http://memcached.org/ ),但这个在Linux下面应用广泛的开源软件无官方支持的Windows版本

    mysql-installer-community-8.0.24.0.rar

    MySQL 分区有助于增强大型数据库应用的性能和管理 存储过程可提高开发人员效率 触发器可在数据库层面实施复杂的业务规则 视图可确保敏感信息不受攻击 Performance Schema 可监视各个用户/应用的资源占用情况 ...

    MySQL 5.1中文手冊

    5.10. MySQL本地化和国际应用 5.10.1. 数据和排序用字符集 5.10.2. 设置错误消息语言 5.10.3. 添加新的字符集 5.10.4. 字符定义数组 5.10.5. 字符串比较支持 5.10.6. 多字节字符支持 5.10.7. 字符集问题 5.10.8. ...

    基于Nutch+ElasticSearch+MySQL+SSM的简易搜索引擎.zip

    MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY等,每种引擎都有特定的优势和适用场景。例如,InnoDB提供事务安全、行级锁定和外键约束,适合处理高并发事务性的应用;MyISAM则更侧重于读取密集型操作,提供全文...

    MySQL 5.1官方简体中文参考手册

    5.10. MySQL本地化和国际应用 5.10.1. 数据和排序用字符集 http://doc.mysql.cn/mysql5/refman-5.1-zh.html-chapter/(第 5/24 页)2006-11-02 19:12:13 MySQL 5.1 Reference Manual 5.10.2. 设置错误消息语言 ...

    MySQL 5.1参考手册

    5.10. MySQL本地化和国际应用 5.10.1. 数据和排序用字符集 5.10.2. 设置错误消息语言 5.10.3. 添加新的字符集 5.10.4. 字符定义数组 5.10.5. 字符串比较支持 5.10.6. 多字节字符支持 5.10.7. 字符集问题 5.10.8. ...

    mysql5.1中文手册

    MySQL本地化和国际应用 5.10.1. 数据和排序用字符集 5.10.2. 设置错误消息语言 5.10.3. 添加新的字符集 5.10.4. 字符定义数组 5.10.5. 字符串比较支持 5.10.6. 多字节字符支持 5.10.7. 字符集...

    MySQL 5.1参考手册中文版

    5.10. MySQL本地化和国际应用 5.10.1. 数据和排序用字符集 5.10.2. 设置错误消息语言 5.10.3. 添加新的字符集 5.10.4. 字符定义数组 5.10.5. 字符串比较支持 5.10.6. 多字节字符支持 5.10.7. 字符集问题 ...

    [零食商贩] - 基于vue全家桶 + koa2 + sequelize + mysql 搭建的移动商城应用.zip

    MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY等,每种引擎都有特定的优势和适用场景。例如,InnoDB提供事务安全、行级锁定和外键约束,适合处理高并发事务性的应用;MyISAM则更侧重于读取密集型操作,提供全文...

    MySQL数据库有什么作用?举例说明具体运用MySQL数据库开发的过程.docx

    此外,在数据存储和管理方面,MySQL还提供了多种存储引擎,如InnoDB、MyISAM、Memory等,让开发人员可以根据不同的需求选择最适合自己的存储引擎,从而提高系统的性能和可靠性。 MySQL的兼容性也是其优势之一。它...

    MySQL 5.1参考手册 (中文版)

    5.10. MySQL本地化和国际应用 5.10.1. 数据和排序用字符集 5.10.2. 设置错误消息语言 5.10.3. 添加新的字符集 5.10.4. 字符定义数组 5.10.5. 字符串比较支持 5.10.6. 多字节字符支持 5.10.7. 字符集问题 5.10.8. ...

    该系统是基于Activiti5工作流引擎采用了SSM+Mysql实现的一个学生请假系统.zip

    MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY等,每种引擎都有特定的优势和适用场景。例如,InnoDB提供事务安全、行级锁定和外键约束,适合处理高并发事务性的应用;MyISAM则更侧重于读取密集型操作,提供全文...

    基于MVC模式的简单购物车实验,JavaWeb作业。Servelet Mysql JSP .zip

    MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY等,每种引擎都有特定的优势和适用场景。例如,InnoDB提供事务安全、行级锁定和外键约束,适合处理高并发事务性的应用;MyISAM则更侧重于读取密集型操作,提供全文...

    这是一个简单的学生管理系统网站,基于前端+flask框架+mysql数据库.zip

    MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY等,每种引擎都有特定的优势和适用场景。例如,InnoDB提供事务安全、行级锁定和外键约束,适合处理高并发事务性的应用;MyISAM则更侧重于读取密集型操作,提供全文...

    MYSQL中文手册

    5.10. MySQL本地化和国际应用 5.10.1. 数据和排序用字符集 5.10.2. 设置错误消息语言 5.10.3. 添加新的字符集 5.10.4. 字符定义数组 5.10.5. 字符串比较支持 5.10.6. 多字节字符支持 5.10.7. 字符集问题 ...

    本项目为SWPU数据库原理及应用大作业《西柚外卖订餐系统》,基于Python+Flask+MySQL开发,轻量简洁.zip

    MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY等,每种引擎都有特定的优势和适用场景。例如,InnoDB提供事务安全、行级锁定和外键约束,适合处理高并发事务性的应用;MyISAM则更侧重于读取密集型操作,提供全文...

    利用微信公众帐号实现一个简单的足球活动报名系统,基于Python 的Web.py and Mysql.zip

    MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY等,每种引擎都有特定的优势和适用场景。例如,InnoDB提供事务安全、行级锁定和外键约束,适合处理高并发事务性的应用;MyISAM则更侧重于读取密集型操作,提供全文...

    Mysql知识详解(内容非常丰富)

    mysql常用引擎包括:MYISAM、Innodb、Memory、MERGE MYISAM:全表锁,拥有较高的执行速度,不支持事务,不支持外键,并发性能差,占用空间相对较小,对事务完整性没有要求,以select、insert为主的应用基本上可以...

Global site tag (gtag.js) - Google Analytics