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

(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. Spring Boot 之构建Hello Word项目
  2. source insight快捷键及使用技巧
  3. C语言满分代码:L1-056 猜数字 (20分)
  4. HTML实体字符转化为HTML标签
  5. *** is required and cannot be removed from the server
  6. C++各个算数类型占用的字节数
  7. Scheme报错define-values: assignment disallowed; cannot change constant
  8. php if and,【PHP】与and的’别名’关系
  9. mysql 右模糊_面试小知识:MySQL索引相关
  10. RADIUS服务器的演变过程
  11. selenium实例:自动刷青马网课实现登陆 python实现自动登陆 利用pytesseract自动识别验证码并登录
  12. 姓名评分程序PHP,姓名测试打分,免费姓名评分测试,免费姓名测试评分 - 姓名算命最准的网站...
  13. dcdc模块降额设计_大功率IGBT模块及驱动技术
  14. 关于Euler-Poisson积分的几种解法
  15. 记录win10无法通过IE浏览器设置受信任的站点的几种方法
  16. 同步时序逻辑电路功能分析之同步五进制加法计数器
  17. GJM : AlloyTouch实战--60行代码搞定QQ看点资料卡
  18. 带你了解ICCV、ECCV、CVPR三大国际会议
  19. ProPresenter 6 for Mac破解版永久激活方法
  20. thinkphp全开源社区团购接龙群接龙

热门文章

  1. 【前端三分钟】利用Javascript实现打字效果
  2. 招投标中评标的方法是什么?
  3. HTMLCSS实现经典登录注册页面
  4. QlikView 笔记(一) 初次使用时最让我惊喜的函数
  5. 第152章 SQL函数 $TSQL_NEWID
  6. (挺好)最详细的Yolov3边框预测分析
  7. 史上最全Hashmap面试总结,51道附带答案,持续更新中...
  8. Hive 与 Hbase表映射(内部表与外部表),Hbase常用命令
  9. 美食杰小项目(首页)
  10. 启发式算法Python代码库——scikit-opt