在MySQL数据库的使用过程中我们经常会听到存储引擎这个名词。MySQL的存储引擎有好多种如InnoDB、MyISAM、Memory、NDB等等,多存储引擎也是MySQL数据库的特色。

InnoDB和MyISAM存储引擎是MySQL数据库中经常使用的引擎,下面就将介绍下它们的功能特性。

InnoDB:支持事务面向在线事务处理(OLTP),基于磁盘存储按照页的方式进行管理。在存储过程中如果没有显式定义表主键则会自动生成6字节的ROWID并以此为主键。

特点:行锁设计、支持外键、支持全文索引、支持非锁定读、支持MVCC(多版本并发控制)。

功能:插入缓存、二次写、自适应哈希索引、预读等等。

InnoDB的体系架构:线程、内存池、文件。后台线程的作用负责刷新内存池中数据,将数据刷新到磁盘文件。

它的数据结构是棵B+树。非叶子节点存放的是索引,数据都在叶子节点上。在数据查找时基于二分查找法。支持的索引有B+树、全文索引、哈希索引(自适应,不可人为干预)。

MyISAM:不支持事务、支持全文索引、表锁设计面向联机分析处理(OLHP)。它的缓冲池只缓存索引文件而不缓冲数据文件。数据文件的缓存由操作系统完成。

它的数据结构是棵B-树(B树不叫B减树),它的数据可以存储在非叶子节点上。它也是基于二分查找。

由于笔者也是初学者,对于好多东西的理解不是很深刻。文中出现的错误希望大家多谅解斧正。有对数据库感兴趣的朋友还望多多留意交流。

InnoDB和MyISAM存储引擎的区别的更多相关文章

  1. innodb和myisam存储引擎插入速度

    --innodb和myisam存储引擎插入速度 ------------------------------------2014/05/21 MySQL 5.6 全部默认设置,插入数据9999条,性能 ...

  2. mysql的innodb存储引擎和myisam存储引擎的区别

    主要区别如下: 1.事务支持.innodb支持事务,事务(commit).回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transacti ...

  3. 第二课——解析mysqldump命令和mysqlbinlog命令+innodb和Myisam存储引擎简介

    环境说明 mysql版本:Percona-Server-5.6.30 IP:10.7.15.167 端口:3306 安装目录:/httx/run/mysql 数据目录:/httx/run/mysql/ ...

  4. InnoDB存储引擎与MyIsam存储引擎的区别

    特性比较 mysql5.5之后默认的存储引擎为InnoDB,在此之前默认存储引擎是MyIsam 特点 MyIsam InnoDB 锁机制 表锁 行锁 事务 不支持 支持 外键 不支持 支持 B树索引 ...

  5. MySQL InnoDB与MyISAM存储引擎差异

    言: 之前简单介绍过 MySQL 常用的存储引擎,今天对两个主流的存储简单分析下差异,书上没有参考的笔试题解答注解: 差异: MyISAM 只支持表锁,不支持事务,表损坏率较高.较老的存储引擎.   ...

  6. mysql中MyISAM与InooDB存储引擎的区别

    MyISAM存储引擎特点 不支持事务 表级锁定 读写相互阻塞,写入不能读,读时不能写 只缓存索引 不支持外键约束 不支持聚簇索引 读取数据较快,占用资源较少 不支持MVCC(多版本并发控制机制)高并发 ...

  7. MySQL数据库MyISAM存储引擎转为Innodb

    MySQL数据库MyISAM存储引擎转为Innodb  之前公司的数据库存储引擎全部为MyISAM,数据量和访问量都不是很大,所以一直都没什么问题.但是最近出现了MySQL数据表经常被锁的情况,直接导 ...

  8. MySQL存储引擎的区别

    一.mysql中myisam,innodb和memory三个存储引擎的区别 1.区别:1) MyISAM管理非事务表.提供高速存储和检索,以及全文搜索能力.MyISAM在所有MySQL配置里被支持,是 ...

  9. mysql 系统性浅聊 myisam 存储引擎【原创】

    >>思维导图 >>介绍 mysql中的存储引擎都是以插件的形式存在,目前用的最多存储引擎就是innodb和myisam.MySQL5.5.5以后(包括5.5.5)默认使用Inn ...

随机推荐

  1. 自己实现一个SQL解析引擎

    自己实现一个SQL解析引擎 功能:将用户输入的SQL语句序列转换为一个可运行的操作序列,并返回查询的结果集. SQL的解析引擎包含查询编译与查询优化和查询的执行,主要包含3个步骤: 查询分析: 制定逻 ...

  2. windows 删除多层文件夹

    眼下目录d:\clu_1下有99个目录,名字为0,1....99,每一个目录下又有25个目录,目录名为0,1,....24,其下其下又有以日期命名的目录(如20140521),最后是zip文件.如一个 ...

  3. Linux 运维笔记

    #配置静态地址网卡DEVICE="eth0"BOOTPROTO=staticHWADDR="00:0C:29:DC:EA:F7"NM_CONTROLLED=&q ...

  4. 新闻滚动marquee标签

    先上代码: <marquee behavior="" direction="up" onMouseOver="this.stop()" ...

  5. C#窗体实现文件拖拽功能

    1.首先要把你的窗体或者空间的AllowDrag属性设置为允许 2.注册DragEnter事件 3.获得文件路径,先通过e.Data.GetFormats()方法获得所有数据格式 4.调用e.GetD ...

  6. Linux 下安装oracle数据库

    原文出处       http://www.linuxidc.com/Linux/2015-02/113222.html 需要安装Oracle DataGuard,所以先要安装单台Oracle11g, ...

  7. linux shell脚本连接oracle查询数据插入文件和日志文件中

    #!/bin/sh sqlplus "用户名/密码@数据库"<<EOF  或者只有一个库的 :sqlplus "用户名/密码"<<EOF ...

  8. oc随笔六:字典

    #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...

  9. iOS学习笔记-CoreData

    简介 CoreData提供了对象关系映射(ORM)功能,从效果上说就是创建了一个"虚拟对象数据库",也可以把它看作一个综合的数据库管理库. NSManagedObjectConte ...

  10. 4、记录1----获取hdfs上FileSystem的方法 记录2:正则匹配路径:linux、hdfs

    /** * 获取hadoop相关配置信息 * @param hadoopConfPath 目前用户需要提供hadoop的配置文件路径 * @return */ public static Config ...