`

存储引擎InnoDB与MyISAM区别

阅读更多
存储引擎


一、总结
名称MyISAMInnoDB
事务不支持支持
外键不支持支持
数据行锁定不支持支持
数据表锁定支持支持
全文索引支持不支持
优势查询操作多修改操作多
对比性能高执行速度快支持事务外键
count(*)读取内存中的行数全表扫描
count(*) where无差别无差别
应用(1)做很多count 的计算;(2)插入不频繁,查询非常频繁;(3)没有事务(1)可靠性要求比较高,或者要求事务;(2)表更新和查询都相当的频繁,并且行锁定的机会比较大的情况


二、其他

1.没有where的count(*)使用MyISAM要比InnoDB快得多。因为MyISAM内置了一个计数器,count(*)时它直接从计数器中读,而InnoDB必须扫描全表。所以在InnoDB上执行count(*)时一般要伴随where,且where中要包含主键以外的索引列。为什么这里特别强调“主键以外”?因为InnoDB中primary index是和raw data存放在一起的,而secondary index则是单独存放,然后有个指针指向primary key。所以只是count(*)的话使用secondary index扫描更快,而primary key则主要在扫描索引同时要返回raw data时的作用较大

2.提供行锁(locking on row level),提供与 Oracle 类型一致的不加锁读取(non-locking read in SELECTs),另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%”




博文参考:
MyISAM和InnoDB的区别
分享到:
评论

相关推荐

    mysql数据据存储引擎InnoDB和MyISAM的优势及区别分享.pdf

    MySQL 数据存储引擎 InnoDB 和 MyISAM 的优势及区别分享 MySQL 数据存储引擎 InnoDB 和 MyISAM 是 MySQL 中最常用的两个表类型,每种类型都有其优缺点,本文将详细介绍 InnoDB 和 MyISAM 的特点、优缺点和应用场景...

    MyISAM引擎与InnoDB引擎性能的对比

    MySQL数据库系统提供了多种存储引擎,其中最常用的两种是MyISAM和InnoDB。它们各自具有独特的特性和适用场景,理解二者的性能差异对于优化数据库设计至关重要。 MyISAM引擎是MySQL早期的默认存储引擎,以其高速度和...

    8.MySQL存储引擎--MyISAM与InnoDB区别1

    MySQL存储引擎--MyISAM与InnoDB区别 MySQL是一种关系型数据库管理系统,它支持多种存储引擎,每种存储引擎都有其特点和优缺。MyISAM和InnoDB是MySQL中最常用的两种存储引擎,它们都有其优缺点,本文将对比MyISAM...

    MySQL存储引擎之争-InnoDB与MyISAM全面对决

    综合来看,尽管InnoDB在事务和并发控制方面表现更优,已成为MySQL的默认存储引擎,但MyISAM在读密集型应用和空间敏感应用中仍有一定的优势。在选择存储引擎时,应根据实际应用的需求,如事务处理的重要性、并发用户...

    浅谈MySQL存储引擎选择 InnoDB与MyISAM的优缺点分析

    本文主要讨论了两种最常用的存储引擎——InnoDB和MyISAM,并分析了它们的优缺点。 首先,MyISAM是MySQL的默认存储引擎,适用于读取密集型应用。它提供了快速的全表扫描和COUNT()操作,适合那些不需要事务处理和外键...

    Innodb与Myisam引擎的区别与应用场景

    其中,InnoDB和MyISAM是最为常见的两种存储引擎,它们各自具备独特的特性和适用场景。下面将详细探讨这两种引擎的主要区别及其在不同场景下的应用。 #### 一、InnoDB与MyISAM的关键区别 1. **事务处理** - **...

    《MYSQL备份与恢复》之 Innodb与 MyISAM引擎

    Xtrabackup工具支持对InnoDB存储引擎的增量备份,工作原理如下: xtrabackup备份原理  xtraBackup基于InnoDB的crash-recovery功能。它会复制innodb的data file,由于不锁表,复制出来的数据是不一致的,在恢复的...

    Mysql存储引擎InnoDB和Myisam的六大区别

    MySQL存储引擎InnoDB和MyISAM是两种非常常见的存储引擎,它们各有特点,适用于不同的应用场景。下面是关于这两种存储引擎的六大区别: 1. **构成上的区别**: MyISAM的每个表由三个文件组成:`.frm`文件存储表结构...

    MySQL存储引擎 InnoDB与MyISAM的区别

    MySQL中的InnoDB和MyISAM是两种非常重要的存储引擎,它们各自有着独特的特性和适用场景。InnoDB以其对事务处理和行级锁定的支持而受到重视,而MyISAM则以其高性能和简单性受到青睐。 InnoDB存储引擎的核心优势在于...

    mySql 存储引擎 启用 Innodb

    本文将详细介绍如何在MySQL中启用InnoDB存储引擎,并对比分析InnoDB与其他存储引擎(如MyISAM)之间的主要差异。 #### 二、InnoDB简介 InnoDB是MySQL数据库的一种默认存储引擎,自MySQL 5.5版本开始,默认启用...

    myisam与innodb 区别 值得下载

    自己总结的 关于mysql存储引擎myisam innodb 的比较 两者区别 对面试会很有帮助

    mysql架构与存储引擎(MySQL逻辑架构、InnoDB引擎、MyISAM引擎、存储引擎选择).docx

    除了InnoDB和MyISAM之外,MySQL还支持多种其他的存储引擎,如Memory、Archive、Federated等,这些引擎各有特色,可以满足不同的业务需求。 #### 四、存储引擎选择 选择合适的存储引擎对于保证数据库性能和稳定性至...

    MyISAM和InnoDB的异同

    MyISAM和InnoDB是MySQL中最常用的两种存储引擎,它们各自拥有不同的特点和适用场景。 #### MyISAM引擎概述 MyISAM是MySQL早期默认使用的存储引擎,它主要适用于读取密集型的应用场景。MyISAM支持表级锁定,这意味...

    MySQL存储引擎MyISAM与InnoDB的9点区别

    MySQL存储引擎MyISAM与InnoDB的区别 一、InnoDB支持事务,MyISAM不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyISAM就不可以了。 二、MyISAM适合查询...

    MySQL存储引擎MyISAM与InnoDB区别总结整理

    2、MyISAM与InnoDB存储引擎的主要特点 MyISAM存储引擎的特点是:表级锁、不支持事务和全文索引,适合一些CMS内容管理系统作为后台数据库使用,但是使用大并发、重负荷生产系统上,表锁结构的特性就显得力不从心; ...

    MySQL内核:InnoDB存储引擎 卷1.pdf.zip

    3. **外键约束**:InnoDB支持外键,这是其他一些存储引擎如MyISAM所不具备的。外键可以确保数据的参照完整性和数据库间的关系。 4. **MVCC(多版本并发控制)**:InnoDB使用MVCC来实现高并发读写,尤其是在可重复读...

    mysql DB引擎myisam与innodB

    在 MySQL 数据库系统中,存在多种不同的存储引擎,其中最为人所熟知且广泛使用的两种是 MyISAM 和 InnoDB。这两种存储引擎各自具有独特的特点和适用场景。 #### InnoDB:事务安全与外键支持 InnoDB 是 MySQL 中...

    MySQL数据库:MySQL存储引擎.pptx

    MySQL 5.7支持的存储引擎有:InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV和BLACKHOLE等。 可以利用语句:show engines; 查看系统所支持的引擎类型。;1.InnoDB存储引擎 InnoDB是事务型数据库的首选引擎...

Global site tag (gtag.js) - Google Analytics