不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。同一个数据库中,不同的表可以有不同的引擎。

(1)InnoDB引擎
  • MySQL5.5.8及其之后的默认引擎
  • 支持事务(提交、回滚、崩溃恢复),表锁,行锁,外键
  • 支持非锁定读,即默认读取操作不会产生锁
  • 每张表的数据存储按照主键顺序存放,若没有指定主键,InnoDB会自动选择一个可以唯一标识数据记录的列作为主键,如果不存在这种列,则MySQL自动为InnoDB表生成一个隐含字段作为主键,这个字段长度为6个字节,类型为长整形
  • 表和索引存储在一个逻辑空间中
  • 不保存表数据的总记录数,执行select count( * ) from table时需要全表扫描

使用场景
被用在众多需要高性能、支持事务、外键等的大型数据库上

(2)MyISAM引擎
  • 拥有较高的插入、查询效率
  • 不支持事务、外键
  • 只支持表锁
  • 索引文件和数据文件分开存储
  • 用一个变量保存了整个表的记录总数,执行select count( * ) from table时只需要取出改值即可
  • 可以没有主键
  • 表锁机制降低了读写吞吐量,在CPU核数增加时,InnoDB的吞吐量更好

使用场景

OLAP:联机分析处理OLAP是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。

(3)MEMORY引擎
  • 将表中的数据存储到内存中,提高查询效率。如果数据库重启或者崩溃,表中的数据丢失。
  • 要求存储在Memory数据表里的数据用的是长度不变的格式,这意味着不能用BLOB和TEXT这样的长度可变的数据类型,VARCHAR是种长度可变的类型,但因为它在MySQL内部当做长度固定不变的CHAR类型,所以可以使用。
  • MySQL数据库中使用Memory存储引擎作为临时表来存放查询的中间结果集,如果中间结果集大于Memory存储引擎表的容量设置,又或者中间结果集含有text和blob字段,则MySQL数据库会把其转换到MyISAM存储引擎表而存放到磁盘中。因为MyISAM不会缓存数据文件,因此这时产生的临时表的性能对于查询会有损失。

使用场景

  • 数据量小,而且被非常频繁地访问
  • 数据是临时的,而且要求必须立即可用,那么就可以存放在内存表中
  • 存储在Memory表中的数据如突然丢失,不会对应用服务产生实质的负面影响
(4)MERGE引擎

MERGE存储引擎是一组MyISAM表组合,这些MyISAM表结构必须完全相同,尽管使用不如其它引擎突出,但是在某些情况下非常有用。说白了Merge表就是几个相同MyISAM表的聚合;Merge表中并没有数据,对Merge类型的表可以进行查询、更新、删除操作,这些操作实际上是对内部的MyISAM表进行操作。

使用场景

对于服务器日志这种信息,一般常用的存储策略是将数据分成很多表,每个名称与特定时间相关。例如:可以用12个相同的表来存储服务器的日志数据,每个表用对应各个月份的名字来命名。当有必要基于所有12个日志表的数据来生成报表时,这意味着需要编写、更新多表查询,以反映这些表中的信息。与其编写这些可能会出现错误的查询,不如将这些表合并起来使用一条查询,之后再删除Merge表而不影响原来的数据,删除Merge表只会删除掉Merge表的定义,对内部表没有任何影响。

(5)ARCHIVE引擎
  • Archive就是归档的意思,在归档之后很多的高级功能就不再支持了,仅支持最基本的插入和查询两种功能。在MySQL 5.1版前,Archive不支持索引,但是在MySQL 5.5以后的版本中就开始支持索引了。Archive拥有很好的压缩机制,使用zlib压缩库,在记录被请求时会实时压缩,所以它经常被用来当做仓库、日志信息使用。
  • 提供高速的插入和压缩功能。

MySQL数据库引擎简介相关推荐

  1. mysql数据库引擎简介_MySQL数据库的存储引擎简介

    存储引擎 MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术,你能够获得额 ...

  2. mysql数据库引擎博客_2、MySQL常见数据库引擎及比较?

    摘自: https://www.cnblogs.com/zhuifeng-mayi/p/9265075.html MySQL存储引擎简介 MySQL支持数个存储引擎作为对不同表的类型的处理器.MySQ ...

  3. MySQL数据库引擎、数据事务与隔离级别

    MySQL数据库引擎 MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和HEA ...

  4. mysql数据库引擎介绍

    mysql数据库引擎介绍 你能用的数据库引擎取决于mysql在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和HE ...

  5. mysql 数据库引擎

    一.数据库引擎 数据库引擎是用于存储.处理和保护数据的核心服务.利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求. 使用数据库引擎创建用于联机事务处理或 ...

  6. MySQL数据库引擎介绍、区别、创建和性能测试的深入分析

    深入理解MySQL的数据库引擎的类型 作者: 字体:[增加 减小] 类型:转载 本篇文章是对MySQL的数据库引擎的类型进行了详细的分析介绍,需要的朋友参考下   你能用的数据库引擎取决于mysql在 ...

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

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

  8. 几种MySQL数据库引擎优缺点对比

    MySQL数据库引擎 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建.查询.更新和删除数据.不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的存 ...

  9. mysql数据库引擎常用面试总结

    一次面试被问到了MySQL的相关问题,一个是对mysql了解多少,引擎有什么,主要区别是什么?第二个被问的更多,给你一个百万级别的表怎么查询优化: 今天整理了一些资料回答第一个问题: 总的思想: My ...

最新文章

  1. 对数组中的数字从小到大排序
  2. QT 5.4.1 for Android Ubuntu QtWebView Demo
  3. IT民工系列——c#操作Microsoft IE,实现自动登录吧!
  4. 触摸事件练习 -- 手势解锁
  5. java-基础练习题3
  6. aspx repeater 用法_ASP.NET - Repeater 控件
  7. linux下面使用飞书个人版预览doc
  8. mesageflow 集成spider 开发思路 手稿
  9. UIButton或UILabel加个下划线
  10. Windows下codeblocks的安装与配置
  11. 【英语学习】【WOTD】disbursement 释义/词源/示例
  12. Hyperledger Fabric Endorsement policies——背书策略
  13. 432考研_贾俊平《统计学》第1章 导论思维导图
  14. 停车场管理系统软件概要设计说明书
  15. Andorid-ViewPage2 左右滑动
  16. mysql存储特殊表情符号,解决mysql存储特殊文字(表情符号)utf8mb4
  17. 设备管理之I/O系统
  18. js将当前时间格式化为年-月-日 时:分:秒
  19. 《上古卷轴5:天际》控制台代码之特技
  20. 信息安全行业从业者----鱼龙混杂也藏龙卧虎

热门文章

  1. frameSet和iframe的基本理解
  2. 机器人巨头争霸,谁主沉浮?
  3. 基于c#条码打印软件源代码 可选择打印机,可选择标签
  4. 系统 应用程序 提示 初始化失败 或 无法加载模块 等错误
  5. yolo系列之yolo v3【深度解析】——讲的挺好,原作者厉害的
  6. cesium加载wms、wmts、tms、wfs服务
  7. 数据分析实例——美国加州人口分析[isnull().any()/.unique()/merge/set_index/df.query/sort_values]
  8. 线程同步之互斥量(互斥锁)
  9. 人迹罕至的android要完全退出程序的一种方法
  10. CentOS 7 安装 TinyProxy 代理服务器