[转帖]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
本文章著作权归作者所有,任何形式的转载都请注明出处。

原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/11750197.html

时间: 2024-08-06 21:35:58

[转帖]InnoDB与MyISAM等存储引擎对比的相关文章

InnoDB与MyISAM等存储引擎对比

文章原文:blog.ouyangsihai.cn >> InnoDB与MyISAM等存储引擎对比 InnoDB存储引擎介绍 InnoDB引擎是Mysql的默认的存储引擎,他有很多自己的特性,下面一一列举. 支持事务,InnoDB存储引擎主要就是为了在线事务处理(OLTP)的应用而设计的. 行锁设计,支持外键,非锁定读. 支持多版本的并发控制(MVCC)来获得高并发性. 提供了插入缓冲.二次写.自适应哈希索引.预读等高性能和高可用的功能. 上面这些算是 InnoDB 存储引擎的一些特点了,也是它

转!!MySQL中的存储引擎讲解(InnoDB,MyISAM,Memory等各存储引擎对比)

MySQL中的存储引擎: 1.存储引擎的概念 2.查看MySQL所支持的存储引擎 3.MySQL中几种常用存储引擎的特点 4.存储引擎之间的相互转化 一.存储引擎: 1.存储引擎其实就是如何实现存储数据,如何为存储的数据建立索引以及如何更新,查询数据等技术实现的方法. 2.MySQL中的数据用各种不同的技术存储在文件(或内存)中,这些技术中的每一种技术都使用不同的存储机制,索引技巧,锁定水平并且最终提供广泛的不同功能和能力.在MySQL中将这些不同的技术及配套的相关功能称为存储引擎. 二.MyS

DML 事务 隔离级别 存储引擎对比

DML 事务 隔离级别 存储引擎对比 DML insert into 第一种: insert into tb_name [(col1,col2,....)]{values|value}(val1,val2,...)[,(val21,val22,....),....] 第二种: insert into tb_name set col_name=val1,col2=val2,.... 第三种(将一个表中的数据插入到另外一张表中): insert into tb_name select clause

【Todo】InnoDB、MyISAM、数据库引擎

关于InnoDB和MyISAM引擎的对比,下面这篇讲的挺好 http://www.cnblogs.com/vicenteforever/articles/1613119.html 这一篇关于InnoDB细节的仔细看: http://jingyan.baidu.com/article/fedf07377c493f35ac89770c.html

MYSQL事务及存储引擎对比

Innodb支持事务,而myisam不支持事务. 事务的定义: 当多个用户访问同一份数据时,一个用户在更改数据的过程中可能有其他用户同时发起更改请求,为保证数据的更新从一个一致性状态变更为另一个一致性状态,这时有必要引入事务的概念. Mysql提供了多种引擎支持Innodb和BDB.Innodb存储引擎事务主要通过UNDO日志和REDO日志实现,Myisam和memory引擎则不支持事务.下图分别给出三种mysql引擎的区别和特性: Myisam存储引擎:由于该引擎不支持事务.也不支持外键,所以

mysql 存储引擎对比

mysql 存储引擎:存储引擎也通常被称作"表类型" 修改原始hellodb.sql存储引擎为InnoDB  sed -i '[email protected][email protected][email protected]' /home/hellodb.sql 导入修改后的sql文件  mysql -uroot -p  mydb < /home/hellodb.sql 查看表引擎,状态  mysql> show engines;    mysql> show t

mysql存储引擎的种类与区别(innodb与myisam)

查找数据库的存数引擎: show engines show variables like '%storage_engine%' 更改数据库的引擎更改配置文件/etc/my.cnf 修改default-storage-engine=InnoDB(需要更改的存储引擎),然后重启数据库 service mysqld restart alter table engine=innodb 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存

MYSQL两大存储引擎INNODB与MYISAM

1.InnoDB存储引擎 MySQL5.5中InnoDB成为默认的存储引擎.InnoDB是事务型存储引擎,被设计用来处理大量的短期事务.它的性能和自动崩溃恢复特性,使得它在非事务场景中也很流行. 所以可以这么说:"除非需要用到某些InnoDB不具备的特性,并且没有其他办法可以替代,否则都应该优先选择它".   InnoDB的数据存储在表空间中,它可以将每个表的数据和索引存放在单独文件中.  InnoDB采用MVCC来支持高并发,并且实现了四个标准的隔离级别.默认级别是REPEATABL

MySQL InnoDB与MyISAM存储引擎差异

前言: 之前简单介绍过 MySQL 常用的存储引擎,今天对两个主流的存储简单分析下差异,书上没有参考的笔试题解答注解: 差异: MyISAM 只支持表锁,不支持事务,表损坏率较高.较老的存储引擎. 它分为2种类型的文件:以 MYD 作为后缀名的数据文件和以 MYI 作为后缀名的索引文件. MyISAM 读写并发不如 InnoDB,适用于INSERT较多的场景,且支持直接复制文件,用以备份数据, 是 MySQL 公司开发的,物理文件主要有数据文件,日志文件和索引文件,并且这三个文件是单独存在. I