一.InnoDB存储引擎

InnoDB给MySQL的表提供了事务处理、回滚、崩溃修复能力和多版本并发控制的事务安全。在MySQL从3.23.34a开始包含InnnoDB。它是MySQL上第一个提供外键约束的表引擎。而且InnoDB对事务处理的能力,也是其他存储引擎不能比拟的。靠后版本的MySQL的默认存储引擎就是InnoDB。

InnoDB存储引擎总支持AUTO_INCREMENT。自动增长列的值不能为空,并且值必须唯一。MySQL中规定自增列必须为主键。在插入值的时候,如果自动增长列不输入值,则插入的值为自动增长后的值;如果输入的值为0或空(NULL),则插入的值也是自动增长后的值;如果插入某个确定的值,且该值在前面没有出现过,就可以直接插入。

InnoDB还支持外键(FOREIGN KEY)。外键所在的表叫做子表,外键所依赖(REFERENCES)的表叫做父表。父表中被字表外键关联的字段必须为主键。当删除、更新父表中的某条信息时,子表也必须有相应的改变,这是数据库的参照完整性规则。

InnoDB中,创建的表的表结构存储在.frm文件中(我觉得是frame的缩写吧)。数据和索引存储在innodb_data_home_dir和innodb_data_file_path定义的表空间中。

InnoDB的优势在于提供了良好的事务处理、崩溃修复能力和并发控制。缺点是读写效率较差,占用的数据空间相对较大。

二.MyISAM存储引擎

MyISAM是MySQL中常见的存储引擎,曾经是MySQL的默认存储引擎。MyISAM是基于ISAM引擎发展起来的,增加了许多有用的扩展。

MyISAM的表存储成3个文件。文件的名字与表名相同。拓展名为frm、MYD、MYI。其实,frm文件存储表的结构;MYD文件存储数据,是MYData的缩写;MYI文件存储索引,是MYIndex的缩写。

基于MyISAM存储引擎的表支持3种不同的存储格式。包括静态型、动态型和压缩型。其中,静态型是MyISAM的默认存储格式,它的字段是固定长度的;动态型包含变长字段,记录的长度不是固定的;压缩型需要用到myisampack工具,占用的磁盘空间较小。

MyISAM的优势在于占用空间小,处理速度快。缺点是不支持事务的完整性和并发性。

三.MEMORY存储引擎

MEMORY是MySQL中一类特殊的存储引擎。它使用存储在内存中的内容来创建表,而且数据全部放在内存中。这些特性与前面的两个很不同。

每个基于MEMORY存储引擎的表实际对应一个磁盘文件。该文件的文件名与表名相同,类型为frm类型。该文件中只存储表的结构。而其数据文件,都是存储在内存中,这样有利于数据的快速处理,提高整个表的效率。值得注意的是,服务器需要有足够的内存来维持MEMORY存储引擎的表的使用。如果不需要了,可以释放内存,甚至删除不需要的表。

MEMORY默认使用哈希索引。速度比使用B型树索引快。当然如果你想用B型树索引,可以在创建索引时指定。

注意,MEMORY用到的很少,因为它是把数据存到内存中,如果内存出现异常就会影响数据。如果重启或者关机,所有数据都会消失。因此,基于MEMORY的表的生命周期很短,一般是一次性的。

MySQL三种常见引擎相关推荐

  1. Mysql数据库存储引擎--转

    原文地址:http://pangge.blog.51cto.com/6013757/1303893 简单介绍 存储引擎就是指表的类型.数据库的存储引擎决定了表在计算机中的存储方式.存储引擎的概念是My ...

  2. MySQL 的三大引擎:InnoDB、MyISAM和Memory

    http://www.cnblogs.com/kakaliush/archive/2010/02/23/1671757.html MySQL的三大引擎:InnoDB.MyISAM和Memory Inn ...

  3. 如何查看mysql数据库的引擎/MySQL数据库引擎详解

    一般情况下,mysql会默认提供多种存储引擎,你可以通过下面的查看: 看你的mysql现在已提供什么存储引擎: mysql> show engines; 看你的mysql当前默认的存储引擎: m ...

  4. 服务器三种常见的限流算法

    服务器三种常见的限流算法 1.计数器算法 2. 滑动窗口 3.令牌桶算法 4.漏桶算法 滑动窗口限流 漏桶限流 令牌桶限流 限流算法总结 单机限流和分布式限流 限流组件 在开发高并发系统时,有三把利器 ...

  5. 支付宝的数据库是MySQL变种_浅谈MySql的储存引擎(表类型)

    浅谈mysql的存储引擎(表类型) 什么是MySql数据库 通常意义上,数据库也就是数据的集合,具体到计算机上数据库可以是存储器上一些文件的集合或者一些内存数据的集合. 我们通常说的MySql数据库, ...

  6. MySQL从MyISAM引擎转换到InnoDB引擎需要注意的地方

    MySQL从MyISAM引擎转换到InnoDB引擎需要注意的地方 来源:易贤网   阅读:1852 次  日期:2015-01-09 11:48:13 科凌 A5无线蓝牙音箱手机迷你电脑音响插卡便携式 ...

  7. 注解分页查询 oracle,oracle分页查询的三种常见写法

    oracle分页查询的三种常见写法分页写法: –分页查询一select * from (select rownum r,e1.* from (select * from emp order by sa ...

  8. mysql的存储引擎详解_Mysql存储引擎详解

    存储引擎的介绍 关系型数据库表是用来存储和组织信息的数据结构,可以将表理解为由行和列组成的表格. 由于表的类型不同,我们在实际开发过程中,就有可能需要各种各样的表,不同的表就意味着存储不同类型的数据, ...

  9. 查看并修改mysql的默认引擎

    1.mysql存储引擎: a)mysql服务器采用了模块化风格,各部分之间保持相对独立,尤其体现在存储架构上.存储引擎负责管理数据存储,以及mysql的索引管理.通过定义的API,mysql服务器能够 ...

最新文章

  1. CXF做的webservice简单例子
  2. 一行代码实现微光效果
  3. mooc python_MOOC python笔记(一):python语言概述
  4. 蓝牙连接参数关于IOS的限制
  5. DataKeyNames
  6. VC++多线程编程[转]
  7. 圆形卡尺测量后创建模板
  8. Canvas-图片旋转
  9. 数字图像的大小、所需比特数(二维)
  10. angular HttpClient getbyid 方法获取数据
  11. libtool的作用及应用【转载】
  12. 28.MySQL Variables
  13. Linux时间子系统之五:低分辨率定时器的原理和实现
  14. 深度置信网络(Deep belief network)matlab初解
  15. 像中文的罗马音字体复制_罗马音字体复制大全
  16. shared_preferences本地存储操作
  17. CentOS7.X安装部署Glassfish4.1.2
  18. 《数学之美》阅读笔记
  19. C#中(int)、Conver.Toint32()、int.Parse()三种类型转换方式的区别与联系--C#基础知识
  20. 图像处理与机器视觉行业分析

热门文章

  1. MAT工具分析java堆内存
  2. VR全景播放器 AvPro Video
  3. vue导出导入csv文件(无需插件)
  4. 李宏毅《机器学习》国语课程(2022)来了
  5. 【python】获取当前时间戳
  6. c#控件弹幕效果_基于C#弹幕类射击游戏的实现——(十)整合
  7. Matlab绘制环形比例图
  8. ITEXT 表格的指定列合并
  9. Java私塾跟我学系列——JAVA篇 第四章Java类和对象
  10. prometheus+grafana对数据库mysql监控