一、常见存储引擎特性

Innodb

具有提交、回滚和崩溃恢复能力的事务安全、支持外键。使用mvcc以及行锁来提供事务支持,因此支持高并发。适用于写频繁,并发率高的应用。

Myisam

不支持事务和灾难自动恢复,但其访问速度快,支持全文索引,对事务完整性没有要求。 通常用于读频繁的数据库,如数据仓库等。

Memory

使用存在内存中的内容来创建表,表访问非常得快,因为它的数据是放在内存中的,并且默认使用HASH索引。但是一旦服务关闭,表中的数据就会丢失掉。 。适用于临时的,需要频繁读写,对性能速度要求严格的应用中,如一些统计操作的中间结果表

二、选择存储引擎时需要考虑的因素

并发

如果最好的满足你的并发性需求取决你的工作量了。如果你仅仅是并发的插入和读取。不管相信与否 ,MyISAM是最好的了。如果你让这些操作互不干扰,就应该选择一个支持行锁的引擎。某些应用程序比其他应用程序具有很多的颗粒级锁定要求(如行级锁定)。选择正确的锁定策略能够减少开销,并有助于整体性能的提升。它还包括对多种能力的支持,如多版本并发性控制或“快照”读取

事务支持:

并非所有的应用程序都需要事务,但对的确需要事务的应用程序来说,有着定义良好的需求,如ACID兼容等。

备份

有规律的备份也影响表的引擎选择。如果服务器关闭,并且定期的备份,存储引擎很容易处理。如果 你需要在线备份并从一个格式转换为另一个。这个选择就不明智了。以后会详细说这部分。

要考虑多引擎所引起的备份和服务器调整的复杂性。

错误恢复

如果你有很多数据,你要考虑错误恢复的时间。MyISAM相对于InnoDB非常容易崩溃而且从崩溃中恢复的时间非常慢,这就是为什么有的人即使不使用事务处理也要用InnoDB了。

特殊功能

最终,你可能发现有的应用需要依靠一些MySQL存储引擎特殊的功能和优化,举个例子,有的应用程序 非常依赖于集群的索引优化。这时候,你只能在InnoDB和solidDB选择了。另一方面,只有MyISAM支持全 文索引。如果一个存储引擎遇到了一个或多个苛刻的需求,对于其他并不算是,那么你就要选一个折中的 方案或者找到一个好的解决方案。通常你能从看上去不满足你的需求的存储引擎,找到你所需要的。

mysql存储引擎简析的更多相关文章

  1. kudu 存储引擎简析

    本文由  网易云发布. 1 概述 本文主要介绍kudu底层存储引擎的数据组织方式,先看整体结构如下: 一张表会分成若干个tablet , 每个tablet 包括MetaData 元信息及若干个RowS ...

  2. 第 3 章 MySQL 存储引擎简介

    第 3 章 MySQL 存储引擎简介 前言 3.1 MySQL 存储引擎概述 MyISAM 存储引擎是 MySQL 默认的存储引擎,也是目前 MySQL 使用最为广泛的存储引擎之一.他的前身就是我们在 ...

  3. MySQL性能调优与架构设计——第3章 MySQL存储引擎简介

    第3章 MySQL存储引擎简介 3.1 MySQL 存储引擎概述 MyISAM存储引擎是MySQL默认的存储引擎,也是目前MySQL使用最为广泛的存储引擎之一.他的前身就是我们在MySQL发展历程中所 ...

  4. Mysql存储引擎及选择方法

    0x00 Mysql数据库常用存储引擎 Mysql数据库是一款开源的数据库,支持多种存储引擎的选择,比如目前最常用的存储引擎有:MyISAM,InnoDB,Memory等. MyISAM存储引擎 My ...

  5. Mysql存储引擎比较

    Mysql作为一个开源的免费数据库,在平时项目当中会经常使用到,而在项目当中我们的着重点一般在设计使用数据库上而非mysql本身上,所以在提到mysql的存储引擎时,一般都不曾知道,这里经过网上相关文 ...

  6. MySQL存储引擎之Myisam和Innodb总结性梳理

    Mysql有两种存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比   MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名字开始 ...

  7. MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述

    MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述: 1.MySQL有多种存储引擎: MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(Berk ...

  8. 【转】mysql存储引擎

    http://www.cnblogs.com/kevingrace/p/5685355.html Mysql有两种存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比   MyISAM In ...

  9. Mroonga 3.0.8 发布,MySQL 存储引擎

    Mroonga 3.0.8 支持 REPAIR TABLE 支持损坏的 groonga 数据库. Mroonga 是一个 MySQL 存储引擎,基于 Groonga,提供完整的全文搜索引擎.

随机推荐

  1. Windows Server 2008 R2的web服务器nginx和Apache的比较

    因为很喜欢nginx,所以也想尝试在Windows下使用nginx,前面安装配置都挺顺利,把域名解析尽量后,通过域名代理访问jboss,却异常的慢,起码有3秒的时间才显示页面,而这个页面是jboss的 ...

  2. PYQT窗口托盘目录

    #UI.py,通过UI设计师制作后直接转换为UI.py脚本 # -*- coding: utf-8 -*- from PyQt4 import QtCore, QtGui try:    _fromU ...

  3. Android MediaCodec 的实例化方法

    *由于作者水平限制,文中难免有错误和不恰当之处,望批评指正. *转载请注明出处:http://www.cnblogs.com/roger-yu/ MediaCodec的实例化方法主要有两种: 1.使用 ...

  4. 单源最短路径-迪杰斯特拉算法(Dijkstra's algorithm)

    Dijkstra's algorithm 迪杰斯特拉算法是目前已知的解决单源最短路径问题的最快算法. 单源(single source)最短路径,就是从一个源点出发,考察它到任意顶点所经过的边的权重之 ...

  5. Git_Bug分支

    软件开发中,bug就像家常便饭一样.有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除. 当你接到一个修复一 ...

  6. OBD-II Protocol -- SAE J1850 VPW PWM

    http://www.auto-diagnostics.info/j1850 j1850 The SAE J1850 bus bus is used for diagnostics and data ...

  7. grep查看源代码用法

    http://blog.csdn.net/guyongqiangx/article/details/70161189

  8. [Asp.net web api]缓存

    摘要 为了提高接口的性能,我们常做的优化就包括缓存,对经常访问但变化不大的数据进行缓存.或者使用http的缓存,减少请求的次数. web api缓存 在提供的api,我们也可以实现缓存,来减少访问的次 ...

  9. Windows操作系统下的MySQL主从复制及读写分离

    一.主服务器(master)配置 1.修改MySQL配置文件my.ini [mysqld] log-bin=mysql-binlog-bin-index=mysql-bin.indexserver-i ...

  10. “System.InvalidOperationException”类型的未经处理的异常在 ESRI.ArcGIS.AxControls.dll 中发生

    问题描述: 新手们进行ArcGIS ArcObject开发时经常会遇到各种十分古怪的问题,比如下面的这个问题: “System.InvalidOperationException”类型的未经处理的异常 ...