MySQL 常见的两种存储引擎

  MySQL两种常见的存储引擎有:MyISAM 和 InnoDB,两者区别如下:

1、count运算:MyISAM 有缓存表的 meta-data 元数据,元数据包括行数等,因此其做 COUNT(*) 查询时不需要消耗多少资源。而 InnoDB 就没有这个缓存。

2、事务和崩溃后的安全恢复:MyISAM强调的是性能,每次查询具备原子性,执行速度比 InnoDB 更快,但是 MyISAM 不提供事务的支持。而 InnoDB 支持事务、外部键等高级数据库功能。具有事务提交(commit)、回滚(rollback)和崩溃修复(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。

3、支持外键:InnoDB支持,MyISAM 不支持。

  MyISAM更适合读密集的表,而InnoDB更适合写密集的的表。 在数据库做主从分离的情况下,经常选择MyISAM作为主库的存储引擎。 一般来说,如果需要事务支持,并且有较高的并发读取频率(MyISAM的表锁的粒度太大,所以当该表写并发量较高时,要等待的查询就会很多了),InnoDB是不错的选择。如果你的数据量很大(MyISAM支持压缩特性可以减少磁盘的空间占用),而且不需要支持事务时,MyISAM是最好的选择。

原文地址:https://www.cnblogs.com/guoyu1/p/12234136.html

时间: 2024-11-07 02:58:40

MySQL 常见的两种存储引擎的相关文章

MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)

先去查一下"引擎"概念. 引擎(Engine)是电子平台上开发程序或系统的核心组件.利用引擎,开发者可迅速建立.铺设程序所需的功能,或利用其辅助程序的运转.一般而言,引擎是一个程序或一套系统的支持部分.常见的程序引擎有游戏引擎,搜索引擎,杀毒引擎等. Ok,我们知道了,引擎就是一个程序的核心组件. 简单来说,存储引擎就是指表的类型以及表在计算机上的存储方式. 存储引擎的概念是MySQL的特点,Oracle中没有专门的存储引擎的概念,Oracle有OLTP和OLAP模式的区分.不同的存储

谈谈MySQL两种存储引擎

Mysql有两种存储引擎:InnoDB与Myisam 二者之间有六大区别:   MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名字开始,扩展名指出文件类型..frm文件存储表定义.数据文件的扩 展名为.MYD (MYData).索引文件的扩 展名是.MYI (MYIndex). 基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的 大小只受限于操作系统文件的大小,一般为 2GB 事务处理上方面: MyISAM类

MySQL - 两种存储引擎 (MyISAM PK InnoDB) + MVCC

总结 1.两种存储引擎各有各的有点,MyISAM专注性能,InnoDB专注事务.两者最大的区别就是InnoDB支持事务,和行锁. 2.InnoDB采用MVCC(Multi-Version Concurrency Control 多版本并发控制)来支持高并发,一种行级锁的变种.MVCC是通过保存数据在某一个时间点的快照来实现的,也就是说无论事务执行多久,每个事务看到的数据都是一致的.InnoDB的MVCC,是通过在每行记录后面保存两个隐藏的列来实现,这两个列一个保存了行的创建时间,一个保存了行的过

mysql中的几种存储引擎

mysql常用的几种存储引擎 MyISAM: (1)做很多count 的计算: (2)插入不频繁,查询非常频繁: (3)没有事务. InnoDB: InnoDB逻辑存储结构:所有表的数据被逻辑的存放在一个表空间里.表空间又由段(segment)区(extent)页(page)组成,页在一些文档中也称为块.表空间由各个段组成,数据段即为B+树的叶节点,索引段即为B+树的非索引节点(我理解的是B+树中的非叶子节点).区由64个连续的页组成,每个页的大小16kb,每个区的大小1Mb.对于大的数据段,I

MySQL 的两种存储引擎

MyISAM 是MySQL的默认数据库引擎(5.5以后默认是InnoDB)性能极佳,但不支持事务处理. InnoDB 是MySQL的数据库常用的数据引擎. MyISAM 和 InnoDB 两者之间有明显的区别,简单梳理一下: 事务 m:每次查询具有原子性,执行速度比i快但是不支持事务操作. i:提供事务.回滚.崩溃修复能力的事务安全(ACID)型数据引擎 存储 m:每个m表在磁盘上存储成三个文件.分别是表定义文件(表名xx.frm).数据文件(表名xx.MYD).索引文件(表名xxx.MYI).

mysql的两种存储引擎

MySQL 有多种存储引擎,目前常用的是 MyISAM 和 InnoDB 这两个引擎,除了这两个引擎以为还有许多其他引擎,有官方的,也有一些公司自己研发的.这篇文章主要简单概述一下常用常见的 MySQL 引擎,一则这是面试中常被问到的问题,二则这也是数据库设计中不可忽略的问题,用合适的引擎可以更好的适应业务场景,提高业务效率. InnoDB引擎 InnoDB是一个事务型的存储引擎,支持回滚,设计目标是处理大数量数据时提供高性能的服务,它在运行时会在内存中建立缓冲池,用于缓冲数据和索引. Inno

Mysql两种存储引擎的优缺点

MyISAM引擎是一种非事务性的引擎,提供高速存储和检索,以及全文搜索能力,适合数据仓库等查询频繁的应用.MyISAM中,一个table实际保存为三个文件,.frm存储表定义,.MYD存储数据,.MYI存储索引.  NULL值被允许在索引的列中. 如何查看表的存储引擎 SHOW TABLE STATUS FROM 数据库 WHERE Name = '表名' InnoDB:这种类型是事务安全的.它与BDB类型具有相同的特性,它们还支持外键.InnoDB表格速度很快.具有比BDB还丰富的特性, 因此

MySQL两种存储引擎: MyISAM和InnoDB 简单总结

MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良.虽然性能极佳,但却有一个缺点:不支持事务处理(transaction).不过,在这几年的发展下,MySQL也导入了InnoDB(另一种数据库引擎),以强化参考完整性与并发违规处理机制,后来就逐渐取代MyISAM. InnoDB,是MySQL的数据库引擎之一,为MySQL AB发布binary的标准之一.InnoDB由Innob

MySql两种存储引擎的区别

MyISAM: 不支持事务,但是每次查询都是原子的: 支持表级锁,即每次操作是对整个表加锁: 存储表的总行数: 一个MYISAM表有三个文件:索引文件.表结构文件.数据文件: 采用菲聚集索引,索引文件的数据域存储指向数据文件的指针.辅索引与主索引基本一致,但是辅索引不用保证唯一性. InnoDb: 支持ACID的事务,支持事务的四种隔离级别: 支持行级锁及外键约束:因此可以支持写并发: 不存储总行数: 一个InnoDb引擎存储在一个文件空间(共享表空间,表大小不受操作系统控制,一个表可能分布在多