- 浏览: 948443 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (423)
- mysql (37)
- hibernate (3)
- struts (9)
- spring (33)
- dom4j (2)
- junit (0)
- exception (1)
- 随笔杂谈 (12)
- google app engine (1)
- XMPP (1)
- OAuth安全授权 (1)
- 版本控制 (8)
- 心情感悟 (0)
- core java (19)
- log4j (7)
- jquery (12)
- javascript (10)
- 网站性能优化及工具 (11)
- 服务器架设配置等 (38)
- EXT (4)
- 正则表达式 (5)
- 日志统计分析 (2)
- htmlparse (4)
- httpclient (5)
- java随笔 (5)
- dhtmlxtree (1)
- freemarke (5)
- memcached (6)
- javamail (5)
- Linux命令 (10)
- 应用监控cpu web jdbc等 (4)
- jmagick (9)
- 第三方缓存策略 (9)
- ORM (2)
- hadoop (2)
- 大数据量处理 (8)
- 经典 (1)
- 权限设计 (1)
- andriod (1)
- mybatis (12)
- redis (24)
- 数据结构_算法 (5)
- 分布式系统 (1)
- php (1)
- 网络编程 (3)
- 服务器部署 (3)
- ios (2)
- IM (23)
- mina (1)
- 视讯和语音 (1)
- 代码生成 (1)
- 架构 (4)
- 建模工具 (1)
- oracle (4)
- solr (10)
- 构建工具 (7)
- html5 (1)
- nginx (5)
- css (1)
- 大数据-分布式 (2)
- 设计模式 (2)
- mq (2)
- jvm调优 (8)
- 并发编程 (2)
- 搜索引擎 (1)
- UML (2)
最新评论
-
天使建站:
jquery获取网页里多选框checkbox选中项的值的方法及 ...
JS jQuery分别获取选中的复选框值 -
abao1:
发现一个小问题 sortAndSave方法中的for循环 第二 ...
完整java实现外部排序 -
西巴拉古呀那:
Kafka分布式消息系统实战(与JavaScalaHadoop ...
消息系统kafka介绍 -
kafodaote:
Kafka分布式消息系统实战(与JavaScalaHadoop ...
消息系统kafka介绍 -
成大大的:
Kafka分布式消息系统实 ...
消息系统kafka介绍
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中查询每个分组的前几名
2013-08-28 10:56 6331http://my.oschina.net/u/103214 ... -
mysql数据启动大量报错且无法启动(The InnoDB memory heap is disabled,Status: NOT_KILLED)故障排查
2013-07-09 15:55 4989mysql数据启动大量报错且无法启动(The InnoDB ... -
mysql修改表、字段、库的字符集
2013-07-09 14:58 917修改数据库字符集: ALTER DATABASE ... -
MySQL数据库my.cnf配置文件注释详解
2013-05-22 08:50 1774我们知道,在MySQL数据库安装完成后,要对my.cnf配置 ... -
CentOS-Mysql 自动备份-shell 脚本
2013-05-21 17:25 2821功能说明: 在服务器A上,每天自动运行一个 shell ... -
mysql dump问题
2013-05-21 17:08 2395由于主从数据不一致,并且之前删除了主数据库上的binlog日 ... -
Mysql 数据库自动备份Shell脚本
2013-05-21 15:31 1085#!/bin/bash #Shell Command ... -
mysql的limit优化(大数据量 Mysql limit分页慢的解决办法)
2012-01-18 17:27 3969mysql的limit优化(大数据量 Mysql limit分 ... -
mysql limit 大数据量分页优化方法
2012-01-18 17:22 2484Mysql的优化是非常重要的。其他最常用也最需要优化的就是li ... -
mysql limit查询优化(数据量大的时候很优)
2012-01-18 16:35 1931mysql limit查询优化[转载],由于limit经常 ... -
MySQL创建用户与授权
2011-10-27 14:09 1207注:我的运行环境是widnow ... -
no sql
2011-06-28 17:08 810http://www.iteye.com/topic/524 ... -
MySQL性能优化
2011-06-11 22:41 995转自:http://www.iteye.com/t ... -
详解mysql 查询表索引的命令
2011-06-07 00:10 1650查看索引命令mysql> show index from ... -
MySQL5.5在Windows下的安装
2011-05-03 09:49 1420选择安装目录下的*.ini文件(这里选择my-medium.i ... -
mysql linux环境下忽略表名大小写配置
2011-03-08 15:07 2689忽略大小写: 在配置文件的 [mysqld] 区段下增 ... -
centos的5.2,mysql免安装版本
2011-03-04 15:37 2614centos的版本是5.2,mysql的版本是最新的稳定版本5 ... -
一条mysql 存在该记录则更新,不存在则插入记录的sql
2010-10-28 17:55 2289一条mysql教程 存在该记录则更新,不存在则插入记录的sql ... -
mysql备份导入导出命令
2010-10-07 02:09 2648几个常用用例: 一、 ... -
mysql去重
2010-10-03 01:58 1836table id name 1 a 2 b 3 ...
相关推荐
除了 MyISAM 和 InnoDB 之外,MySQL 还提供了其他几个存储引擎,如 MEMORY、MERGE 等。 MEMORY 存储引擎是一种基于内存的存储引擎,数据存储在内存中,访问速度非常快,但是数据不是持久性的,服务器重启后数据将会...
在众多数据库系统中,MySQL独树一帜,提供了多种存储引擎供用户选择,使得开发者可以根据应用程序的具体需求选择最合适的存储引擎。这些存储引擎,例如MyISAM、InnoDB、BDB、MEMORY等,各有其特定的特性与适用场景,...
HEAP引擎,又称MEMORY引擎,用于创建仅存在于内存中的临时表,执行速度快,但数据不稳定且在系统关闭时会丢失。它适合处理临时数据或需要快速响应的查询。务必在使用完毕后删除表格以避免资源浪费。 InnoDB和BDB...
4. **Heap** 或Memory引擎,将数据存储在内存中,提供极高的读写效率,但数据的持久性较差,一旦MySQL服务停止,存储的数据会丢失。适用于临时表或者对数据丢失不敏感的场景。 5. **Berkley DB (BDB)** 引擎则提供...
MySQL存储引擎是数据库管理系统的核心组件,它决定了数据如何在MySQL中存储、检索和管理。不同的存储引擎具有不同的特性和用途,以适应各种应用场景。在MySQL中,存储引擎主要负责数据的物理存储方式、事务处理、...
MySQL提供了多种存储引擎,包括MyISAM、InnoDB、BDB、Memory、Merge、Archive、Federated、BLACKHOLE、Cluster/NDB、CSV和Example等。其中,InnoDB、NDB和BDB支持事务处理,提供了一定的数据一致性保障,而其他引擎...
目前,MySQL 提供多种数据库引擎,如InnoDB、MyISAM和Memory,以适应不同应用场景。 1.3 数据库引擎分类和特点 - 关系型数据库引擎:如MySQL,使用表格结构,支持SQL,强调数据一致性,适用于结构化数据存储。 - 非...
通过本文的详细介绍,我们深入了解了MySQL存储引擎的重要性以及不同存储引擎的特点和应用场景。选择合适的存储引擎对于优化MySQL数据库性能和确保数据一致性至关重要。希望本文能够帮助您更好地理解和运用MySQL存储...
MySQL数据库中,InnoDB和Memory引擎是两种常见的存储引擎,它们各自具有独特的特性和适用场景。InnoDB以其事务处理能力、行级锁定以及对ACID(原子性、一致性、隔离性、持久性)的支持而广受好评,但Memory引擎也有...
MySQL支持多种存储引擎,每个引擎都有其独特的特性和适用场景,例如InnoDB用于事务处理,MyISAM适合读取密集型应用,Memory引擎用于临时表等。 在源码学习过程中,首先会接触到的是存储引擎架构。MySQL采用插件式...
MySQL提供多种存储引擎,每种引擎针对不同的数据库应用场景进行了优化。以下是几种常见的MySQL存储引擎及其特点: 1. **InnoDB存储引擎**: - **事务支持**:InnoDB是支持ACID(原子性、一致性、隔离性、持久性)...
### MySQL存储引擎配置与SQL查询 #### 一、MySQL存储引擎的配置 在MySQL数据库管理系统中,存储引擎是用于组织和管理数据的方式。不同的存储引擎提供了不同的特性,例如事务处理能力、索引类型等。因此,了解如何...
本文将深入探讨 MySQL 数据库中常用的存储引擎,包括 InnoDB、MyISAM、Memory(HEAP)和 Archive 等。 一、InnoDB 存储引擎 InnoDB 是 MySQL 的默认存储引擎,它提供了强大的事务处理、行级锁定和外键约束功能。...
- InnoDB是MySQL的默认存储引擎,它支持事务处理和行级锁定,这使得InnoDB在并发环境下表现出色,适用于需要高数据一致性和事务安全性的应用。 - InnoDB使用聚集索引,主键值被存储在每个数据行中,如果没有指定...
MySQL的插件式存储引擎体系结构是一种灵活的设计模式,允许用户根据具体的应用场景选择最适合的存储引擎。这一架构的最大优势在于它允许应用程序和数据库管理员(DBA)不必关心底层的具体实现细节,从而简化了应用开发...
MEMORY引擎将数据存储在内存中,适用于临时表或对速度有极高要求的应用。NDB Cluster则提供了高可用性和可扩展性,适合分布式部署。 了解这些存储引擎的特性和适用场景,对于数据库管理员和开发者来说至关重要,...