1.InnoDB存储引擎

MySQL5.5中InnoDB成为默认的存储引擎InnoDB是事务型存储引擎,被设计用来处理大量的短期事务。它的性能和自动崩溃恢复特性,使得它在非事务场景中也很流行。

所以可以这么说:“除非需要用到某些InnoDB不具备的特性,并且没有其他办法可以替代,否则都应该优先选择它”。

  InnoDB的数据存储在表空间中,它可以将每个表的数据和索引存放在单独文件中。

 InnoDB采用MVCC来支持高并发,并且实现了四个标准的隔离级别。默认级别是REPEATABLE READ(可重复读),并且通过间隙锁策略防止幻读的出现。

InnoDB表示基于聚簇索引建立的,聚簇索引对主键的查询有很高的性能。

InnoDB支持真正的热备份,可以通过XtraBackup工具实现。

InnoDB内部做了很多优化,包括从磁盘读取数据时采用的可预测性预读,能够自动在内存中创建hash索引,能够加速插入操作的插入缓冲区等。

  应用场景

需要在线热备份

       数据量大,需要系统崩溃后快速恢复。比如订单处理。

2.MyISAM存储引擎

MySQL5.1之前,MyISAM为默认的存储引擎。MyISAM不支持事务和行级锁且最大缺陷就是崩溃后无法安全恢复。

.MyISAM将表存储在两个文件中:数据文件和索引文件。

MyISAM对整张表加锁,读取时对需要的所有表加共享锁,写入时加排它锁。但是在表有读取查询时,也可以往表中插入新的记录(并发插入)

MyISAM可以手工或者自动执行检查修复操作,但是可能导致数据丢失而且修复操作非常慢。

MyISAM表中BLOB和TEXT等长字段也可以基于前500个字符创建索引。MyISAM也支持全文索引,这是基于分词创建的索引,可以支持复杂的查询。

MyISAM在创建表时候如果指定DELAY_KEY_WRITE(延迟更新索引键),在每次修改执行完成时会将索引写入内存中的键缓冲区,挡在清理键缓冲区或者关闭表时才会将对应索  引块写入磁盘,这种方式可以极大提升写入性能。但是在数据库或主机崩溃时索引会损坏。

应用场景

主要是SELECT和INSERT操作的场景,比如一般日志型的应用。

MySQL两大存储引擎InnoDB与MyISAM的更多相关文章

  1. MySQL两大存储引擎:MyISAM和InnoDB

    Mysql有两大常用的存储引擎MyISAM,InnoDB,默认的形式是前者. 两者基本的差别是对事务处理.外键和行级锁的主持上,InnoDB支持事务处理.外键等高级特性,而MyISAM不支持.MyIS ...

  2. MySQL两种存储引擎: MyISAM和InnoDB

    MySQL两种存储引擎: MyISAM和InnoDB 简单总结   MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Me ...

  3. 常用Mysql存储引擎--InnoDB和MyISAM简单总结

    常用Mysql存储引擎--InnoDB和MyISAM简单总结 2013-04-19 10:21:52|  分类: CCST|举报|字号 订阅     MySQL服务器采用了模块化风格,各部分之间保持相 ...

  4. MySQL存储引擎InnoDB与Myisam

    InnoDB与Myisam的六大区别 InnoDB与Myisam的六大区别 MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名字开始,扩展名 ...

  5. MySQL存储引擎InnoDB,MyISAM

    MySQL存储引擎InnoDB,MyISAM1.区别:(1)InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语 ...

  6. [转帖]mysql常用存储引擎(InnoDB、MyISAM、MEMORY、MERGE、ARCHIVE)介绍与如何选择

    mysql常用存储引擎(InnoDB.MyISAM.MEMORY.MERGE.ARCHIVE)介绍与如何选择原创web洋仔 发布于2018-06-28 15:58:34 阅读数 1063 收藏展开 h ...

  7. MySQL各大存储引擎

    MySQL各大存储引擎: 最好先看下你下的MySQL支持什么数据库引擎 存储引擎主要有: 1. MyIsam , 2. InnoDB, 3. Memory, 4. Blackhole, 5. CSV, ...

  8. MySQL - 两种存储引擎 (MyISAM PK InnoDB) + MVCC

    总结 1.两种存储引擎各有各的有点,MyISAM专注性能,InnoDB专注事务.两者最大的区别就是InnoDB支持事务,和行锁. 2.InnoDB采用MVCC(Multi-Version Concur ...

  9. MySql常用两大存储引擎简介

    MyISAM存储引擎简介 MyISAM存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件. 首先肯定会有任何存储引擎都不可缺少的存放表结构定义信息的.frm文件,另外还有.MYD和.M ...

随机推荐

  1. docker with flannel

    ** 原创文章,请勿转载 ** docker的单host,多container环境下,是使用host的docker0网桥进行通信的.如果跨host, container之间要通信怎么办呢?答案是fla ...

  2. 第四章 go语言 数组、切片和映射

    文章由作者马志国在博客园的原创,若转载请于明显处标记出处:http://www.cnblogs.com/mazg/ 数组是由同构的元素组成.结构体是由异构的元素组成.数据和结构体都是有固定内存大小的数 ...

  3. Linux 文本处理工具(grep sed awk )

    ^test: 以test开头; test$: 以test结尾: ^$: 表示空行,不是空格: . :代表且只代表任意一个字符(其他功能:当前目录,加载文件): \ : 代表转义字符,表示特殊字符: * ...

  4. 局域网中间人:MITMf使用

    系统环境:kali 安装流程参考github官方地址:https://github.com/byt3bl33d3r/MITMf/wiki/Installation 安装相关依赖: apt--dev l ...

  5. 统计学习方法学习(四)--KNN及kd树的java实现

    K近邻法 1基本概念 K近邻法,是一种基本分类和回归规则.根据已有的训练数据集(含有标签),对于新的实例,根据其最近的k个近邻的类别,通过多数表决的方式进行预测. 2模型相关 2.1 距离的度量方式 ...

  6. Java Web应用集成OSGI

    对OSGI的简单理解 就像Java Web应用程序需要运行在Tomcat.Weblogic这样的容器中一样.程序员开发的OSGI程序包也需要运行在OSGI容器中.目前主流的OSGI容器包括:Apach ...

  7. [bzoj 2017] [Usaco2009 Nov]硬币游戏

    一个多月没更博客了..(期间明白了自己有多傻逼. 这种问题大概就倒着做... f[i][j]:表示考虑剩下的硬币i..n,且之前的人取了j个时,先手最多拿到的钱数.aft[i]:表示硬币i..n的总钱 ...

  8. 将id传过去,根据id显示下面的详情页面

    官方demo:http://dev.dcloud.net.cn/mui/event/ 假设如下场景:从新闻列表页面进入新闻详情页面,新闻详情页面为共用页面,通过传递新闻ID通知详情页面需要显示具体哪个 ...

  9. tinyxml的封装与使用(转载)

    tinyxml是个高效精简的xml解析开源代码. 针对tinyxml直接使用对于对xml不是很熟悉的入门新手来说,有些概念难以理解,因此我将其封装后,供大家使用. 头文件: #include &quo ...

  10. MFC中打开一个获取路径的对话框

    不废话,上代码 CString m_FileDir; BROWSEINFO bi; ZeroMemory(&bi, sizeof(BROWSEINFO)); bi.hwndOwner = m_ ...