mysql存储引擎简析
一、常见存储引擎特性
Innodb
具有提交、回滚和崩溃恢复能力的事务安全、支持外键。使用mvcc以及行锁来提供事务支持,因此支持高并发。适用于写频繁,并发率高的应用。
Myisam
不支持事务和灾难自动恢复,但其访问速度快,支持全文索引,对事务完整性没有要求。 通常用于读频繁的数据库,如数据仓库等。
Memory
使用存在内存中的内容来创建表,表访问非常得快,因为它的数据是放在内存中的,并且默认使用HASH索引。但是一旦服务关闭,表中的数据就会丢失掉。 。适用于临时的,需要频繁读写,对性能速度要求严格的应用中,如一些统计操作的中间结果表
二、选择存储引擎时需要考虑的因素
并发
如果最好的满足你的并发性需求取决你的工作量了。如果你仅仅是并发的插入和读取。不管相信与否 ,MyISAM是最好的了。如果你让这些操作互不干扰,就应该选择一个支持行锁的引擎。某些应用程序比其他应用程序具有很多的颗粒级锁定要求(如行级锁定)。选择正确的锁定策略能够减少开销,并有助于整体性能的提升。它还包括对多种能力的支持,如多版本并发性控制或“快照”读取
事务支持:
并非所有的应用程序都需要事务,但对的确需要事务的应用程序来说,有着定义良好的需求,如ACID兼容等。
备份
有规律的备份也影响表的引擎选择。如果服务器关闭,并且定期的备份,存储引擎很容易处理。如果 你需要在线备份并从一个格式转换为另一个。这个选择就不明智了。以后会详细说这部分。
要考虑多引擎所引起的备份和服务器调整的复杂性。
错误恢复
如果你有很多数据,你要考虑错误恢复的时间。MyISAM相对于InnoDB非常容易崩溃而且从崩溃中恢复的时间非常慢,这就是为什么有的人即使不使用事务处理也要用InnoDB了。
特殊功能
最终,你可能发现有的应用需要依靠一些MySQL存储引擎特殊的功能和优化,举个例子,有的应用程序 非常依赖于集群的索引优化。这时候,你只能在InnoDB和solidDB选择了。另一方面,只有MyISAM支持全 文索引。如果一个存储引擎遇到了一个或多个苛刻的需求,对于其他并不算是,那么你就要选一个折中的 方案或者找到一个好的解决方案。通常你能从看上去不满足你的需求的存储引擎,找到你所需要的。
mysql存储引擎简析的更多相关文章
- kudu 存储引擎简析
本文由 网易云发布. 1 概述 本文主要介绍kudu底层存储引擎的数据组织方式,先看整体结构如下: 一张表会分成若干个tablet , 每个tablet 包括MetaData 元信息及若干个RowS ...
- 第 3 章 MySQL 存储引擎简介
第 3 章 MySQL 存储引擎简介 前言 3.1 MySQL 存储引擎概述 MyISAM 存储引擎是 MySQL 默认的存储引擎,也是目前 MySQL 使用最为广泛的存储引擎之一.他的前身就是我们在 ...
- MySQL性能调优与架构设计——第3章 MySQL存储引擎简介
第3章 MySQL存储引擎简介 3.1 MySQL 存储引擎概述 MyISAM存储引擎是MySQL默认的存储引擎,也是目前MySQL使用最为广泛的存储引擎之一.他的前身就是我们在MySQL发展历程中所 ...
- Mysql存储引擎及选择方法
0x00 Mysql数据库常用存储引擎 Mysql数据库是一款开源的数据库,支持多种存储引擎的选择,比如目前最常用的存储引擎有:MyISAM,InnoDB,Memory等. MyISAM存储引擎 My ...
- Mysql存储引擎比较
Mysql作为一个开源的免费数据库,在平时项目当中会经常使用到,而在项目当中我们的着重点一般在设计使用数据库上而非mysql本身上,所以在提到mysql的存储引擎时,一般都不曾知道,这里经过网上相关文 ...
- MySQL存储引擎之Myisam和Innodb总结性梳理
Mysql有两种存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比 MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名字开始 ...
- MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述
MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述: 1.MySQL有多种存储引擎: MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(Berk ...
- 【转】mysql存储引擎
http://www.cnblogs.com/kevingrace/p/5685355.html Mysql有两种存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比 MyISAM In ...
- Mroonga 3.0.8 发布,MySQL 存储引擎
Mroonga 3.0.8 支持 REPAIR TABLE 支持损坏的 groonga 数据库. Mroonga 是一个 MySQL 存储引擎,基于 Groonga,提供完整的全文搜索引擎.
随机推荐
- 【原创】实战padding oracle漏洞
首先关于padding oracle漏洞的原理请看: 步入正传~~ 搭建漏洞利用环境Perl 环境下载地址:链接:http://pan.baidu.com/s/1skFxVm1 密码:anuw 首先查 ...
- hdu 3338 最大流 ****
题意: 黑格子右上代表该行的和,左下代表该列下的和 链接:点我 这题可以用网络流做.以空白格为节点,假设流是从左流入,从上流出的,流入的容量为行和,流出来容量为列和,其余容量不变.求满足的最大流.由于 ...
- MySQL的五种日期和时间类型
MySQl中有多种表示日期和时间的数据类型.其中YEAR表示年份,DATE表示日期,TIME表示时间,DATETIME和TIMESTAMP表示日期和实践.它们的对比如下:YEAR ,字节数 ...
- 自动化运维之 ~cobbler~
一 .Cobbler简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k 行python代码),使用简 ...
- Git_期末总结
终于到了期末总结的时刻了! 经过几天的学习,相信你对Git已经初步掌握.一开始,可能觉得Git上手比较困难,尤其是已经熟悉SVN的童鞋,没关系,多操练几次,就会越用越顺手. Git虽然极其强大,命令繁 ...
- JS实现背景透明度可变,文字不透明的效果
最近项目里需要实现这么个功能,类似网游中的聊天框,背景都是透明的,但是文字是不透明.所以如果简单的使用opacity(非IE)和alpha滤镜(IE)是无法实现这个效果的,会造成全部透明. 解决办法如 ...
- hadoop学习;Streaming,aggregate;combiner
hadoop streaming同意我们使用不论什么可运行脚本来处理按行组织的数据流,数据取自UNIX的标准输入STDIN,并输出到STDOUT 我们能够用 linux命令管道查看文本有多少行,cat ...
- 使用Microsoft Unity进行日志记录
需要记录日志的地方包括:进入方法的时候,传参的时候,统计执行时间,方法返回参数的时候,退出语句块的时候,出现异常的时候,等等.先来体验不使用Micirosoft Unity进行日志记录. class ...
- MVC实现有关时间的进度条,使用jQuery ui的progressbar
在电商网站中,有时候通过进度条来直观地显示用户是否到期以及用户当前的状态. 设计这样的一个Model. public class User { public int Id { get; set; } ...
- 10.2.2移动产品离线功能等具体解释----暨4月8日移动《在离线一体化》公开课Q&A
4月8日<离,或者不离,ArcGIS移动的"在离线一体化"就在那里!>移动公开课已经结束,针对公开课上粉丝们重点关注的问题,本博客进行了具体的解答.答疑主要环绕最新的R ...