[转帖]InnoDB与MyISAM等存储引擎对比
InnoDB与MyISAM等存储引擎对比
https://blog.ouyangsihai.cn/innodb-yu-myisam-deng-cun-chu-yin-qing-dui-bi.html
InnoDB存储引擎介绍
InnoDB引擎是Mysql的默认的存储引擎,他有很多自己的特性,下面一一列举。
- 支持事务,InnoDB存储引擎主要就是为了在线事务处理(OLTP)的应用而设计的。
- 行锁设计,支持外键,非锁定读。
- 支持多版本的并发控制(MVCC)来获得高并发性。
- 提供了插入缓冲、二次写、自适应哈希索引、预读等高性能和高可用的功能。
上面这些算是 InnoDB 存储引擎的一些特点了,也是它的优势所在,为什么 InnoDB 引擎会使用如此广泛,就是因为它能有很好的性能。
MyISAM储存引擎介绍
- 不支持事务,它的设计目标是面向在线分析的应用(OLAP)。
- 支持全文索引。
- 表锁设计。
- 它的缓冲池只缓冲索引文件,不缓冲数据文件,所以 MyISAM 存储引擎表由
MYD和MYI组成,前者存储数据文件,后者存储索引文件。
存储引擎之间的对比
这一部分,主要简要的介绍一下各个存储引擎之间的差别,及主要的作用及特点。
特性对比
| 特性 | MyISAM | InnoDB | BDB | Memory | Archive | NDB |
|---|---|---|---|---|---|---|
| 存储限制 | 无 | 64TB | 无 | 有 | 无 | 有 |
| 事务 | 支持 | 支持 | ||||
| 锁级别 | 表锁 | 行锁 | page | 表 | 行 | 行 |
| MVCC(并发控制) | 支持 | 支持 | 支持 | |||
| 全文索引 | 支持 | |||||
| 集群索引 | 支持 | |||||
| 数据缓存和索引缓存 | 支持 | 支持 | 支持 | |||
| 数据压缩 | 支持 | 支持 | ||||
| 批量插入速度 | 高 | 低 | 高 | 高 | 很高 | 高 |
| 集群数据库支持 | 支持 | |||||
| 外键支持 | 支持 | |||||
| 适用场景 | 不需要事务的操作;插入、更新少,读取频繁;频繁的统计计算。 | 需要事务的操作;更新数据需要使用行级锁;大数据量读写;大型互联网应用。 | 类似 InnoDB | 数据量不大,需要被频繁的访问,而且数据丢失不会对业务产生比较严重的影响。 | 存储引擎基本上用于数据归档,作为日志表 | 集群 |
存储引擎特性介绍
| 存储引擎 | 主要特点 |
|---|---|
| BDB | 可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性 |
| Memory | 数据存储在内存中,重启或崩溃,数据消失,使用哈希索引 |
| Archive | 只支持Insert和Select操作,支持索引,非常适合存储归档数据, 目标:高速插入和压缩功能 |
| NDB | 集群存储引擎,数据全部放在内存中,高可用、高性能的集群系统 |
| Federated | 不存放数据,只是指向一台远程MySQL数据库服务器上的表 |
| Maria | 新开发引擎,用于取代MyISAM存储引擎。 支持事务和非事务、缓存、索引文件、行锁、MVCC功能 |
来源: 欧阳思海
作者: 欧阳思海
链接: https://blog.ouyangsihai.cn/innodb-yu-myisam-deng-cun-chu-yin-qing-dui-bi.html
本文章著作权归作者所有,任何形式的转载都请注明出处。
[转帖]InnoDB与MyISAM等存储引擎对比的更多相关文章
- 转!!MySQL中的存储引擎讲解(InnoDB,MyISAM,Memory等各存储引擎对比)
MySQL中的存储引擎: 1.存储引擎的概念 2.查看MySQL所支持的存储引擎 3.MySQL中几种常用存储引擎的特点 4.存储引擎之间的相互转化 一.存储引擎: 1.存储引擎其实就是如何实现存储数 ...
- MySQL中MyISAM和InnoDB两种主流存储引擎的特点
一.数据库引擎(Engines)的概念 MySQ5.6L的架构图: MySQL的存储引擎全称为(Pluggable Storage Engines)插件式存储引擎.MySQL的所有逻辑概念,包括SQL ...
- MySQL存储引擎对比
MySQL存储引擎对比 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL的存储引擎 大家应该知道MySQL的存储引擎应该是表级别的概念,因为我们无法再创建databas ...
- mysql学习--MySQL存储引擎对比总结
一.存储引擎是什么 存储引擎是数据库的核心,对于mysql来说,存储引擎是以插件的形式运行的.MySQL默认配置了许多不同的存储引擎,可以预先设置或者在MySQL服务器中启用.你可以选择适用于服务器. ...
- MySQL三种InnoDB、MyISAM和MEMORY存储引擎对比
什么是存储引擎? MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术,你能 ...
- mysql数据库 myisam数据存储引擎 表由于索引和数据导致的表损坏 的修复 和检查
一.mysqlcheck 进行表的检查和修复 1.检查mysqlisam存储引擎表的状态 #mysqlcheck -uuser -ppassword database table -c #检查单 ...
- 【Todo】InnoDB、MyISAM、数据库引擎
关于InnoDB和MyISAM引擎的对比,下面这篇讲的挺好 http://www.cnblogs.com/vicenteforever/articles/1613119.html 这一篇关于InnoD ...
- MYSQL事务及存储引擎对比
Innodb支持事务,而myisam不支持事务. 事务的定义: 当多个用户访问同一份数据时,一个用户在更改数据的过程中可能有其他用户同时发起更改请求,为保证数据的更新从一个一致性状态变更为另一个一致性 ...
- MySQL各种存储引擎对比总结
1.MyISAM 是MySQL5.5版之前默认的存储引擎,特点:数据文件和索引文件可以放置在不同的目录,平局分布IO,获得更快的速度.不支持事务,不支持外键. 2.InnoDB 是 MySQL5.5版 ...
随机推荐
- YII框架的模块化技术
一.模块的创建 利用yii的自动生成工具gii生成模块. 1.访问:lcoalhost/web/index.php?r=gii 2.点击 Module Generator 下面的 start 3.填写 ...
- Alpha(2/6)
队名:無駄無駄 组长博客 作业博客 组员情况 张越洋 过去两天完成了哪些任务 任务分配.进度监督 提交记录(全组共用) 接下来的计划 沟通前后端成员,监督.提醒他们尽快完成各自的进度 还剩下哪些任务 ...
- FCS省选模拟赛 Day4
传送门 Solution Code /* 斯坦纳树:O(n*3^n+kE*2^n) 暂且把O(k*E)当成是spfa的复杂度 15:15~16:20 原题:bzoj_4774 */ #include ...
- ZR#1012
## ZR#1012 blog咕咕咕了好久,开始补. 解法: 一个很显然的性质, $ x $ 只能转移到 $ x+1 $ 或者 $ 2x $ 处,所以我们可以以此性质建图,即 $ x $ 向 $ x ...
- Nodejs技巧之---Exceljs
工作中我们可能会遇到制作表格的需求,那么针对nodejs如何制作一个汇总表格呢? 今天我们就在此介绍下exceljs的基本使用,应该可以满足我们大部分的需求. 第一部分 下载 npm install ...
- P2P模式
P2P模式 P2P模式包含三个角色:消息队列(Queue),发送者(Sender),接收者(Receiver).每个消息都被发送到一个特定的队列,接收者从队列中获取消息.队列保留着消息,直到他们被消费 ...
- ch341a编程器写操作超时失败
当点击自动编写‘提示写操作超时失败’要怎么样才能解决,下面我给大家分享一下! 方法/步骤 首先我们点击操作 选择操作选项 看看箭头所指的几个地方是不是都没打上勾 我们把这几个地 ...
- windows 下的Python虚拟环境(vitrualen)pycharm创建Django项目
问题:MySQL Strict Mode is not set for database connection 'default' 初学Django遇到问题-MySQL Strict Mode is ...
- MiniDLNA常用操作
# MiniDLNA常用操作 ## 简介 多媒体共享服务器,类似于FTP,支持DLNA的客户端都可以看视频,听音乐,处于同一局域网就可以了 ## 管理 - 启动`systemctl start min ...
- openresty开发系列16--lua中的控制结构if-else/repeat/for/while
openresty开发系列16--lua中的控制结构if-else/repeat/for/while 一)条件 - 控制结构 if-else if-else 是我们熟知的一种控制结构.Lua 跟其他语 ...