`

数据库引擎-MySQL的MyISAM和InnoDB

阅读更多

MyISAM

默认存储引擎,基于传统的ISAM类型。

ISAM:Indexed Sequential Access Method (有索引的顺序访问方法),它是存储记录和文件的标准方法。

每张MyISAM表被存放在三个文件:

  • frm文件存放表格定义。
  • 数据文件是MYD(MYData)。
  • 索引文件是MYI(MYIndex)引伸。

MyISAM表是保存成文件的形式,在跨平台的数据转移中使用MyISAM存储会省去不少的麻烦。

MyISAM特点:

  • 具有检查和修复表格的大多数工具。
  • MyISAM表格可以被压缩。
  • 支持全文搜索。
  • 不是事务安全的,也不支持外键。

缺点:

  • 事务回滚将造成不完全回滚

InnoDB

具有提交、回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB是为处理巨大数据量时的最大性能设计。

InnoDB特点:

  • InnoDB不支持FULLTEXT类型的索引。
  • InnoDB中不保存表的具体行数。执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。
  • 对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。
  • DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。
  • LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。
  • InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表。

多并发操作时,一般情况下InnoDB比MyISAM性能优秀些。

分享到:
评论

相关推荐

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

    MyISAM和InnoDB是MySQL中最常用的两种存储引擎,它们都有其优缺点,本文将对比MyISAM和InnoDB存储引擎的区别。 FULLTEXT索引 MyISAM支持FULLTEXT索引,而InnoDB不支持。FULLTEXT索引可以对文本字段进行索引,以提高...

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

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

    数据库引擎 MyISAM 和 InnoDB 对比

    ### 数据库引擎 MyISAM 和 InnoDB 的对比分析 在MySQL数据库系统中,MyISAM与InnoDB是最常被提及的两种存储引擎。这两种引擎在功能、性能以及适用场景上存在显著差异,本文将深入探讨这两者之间的区别,并分析它们...

    68.选择合适的数据库引擎和myisam和innodb的主要区别?.avi

    mysql数据库 选择合适的数据库引擎和myisam和innodb的主要区别

    jsd1906 达内数据库 06-MySQL.rar

    5. **存储引擎**:如InnoDB和MyISAM的区别,以及如何根据需求选择合适的引擎。 6. **视图**:创建和使用视图来简化复杂的查询和提供安全性。 7. **触发器**:自动执行特定操作的数据库对象。 8. **备份与恢复**:...

    mysql更改引擎(InnoDB,MyISAM)的方法

    mysql默认的数据库引擎是MyISAM,不支持事务和外键,也可使用支持事务和外键的InnoDB。 查看当前数据库的所支持的数据库引擎以及默认数据库引擎 数据库支持的引擎和默认数据库引擎代码: 代码如下:show engines; ...

    MyISAM和InnoDB的异同

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

    mysql DB引擎myisam与innodB

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

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

    InnoDB作为MySQL中最常用且最重要的存储引擎,负责处理事务处理、数据完整性以及并发控制等关键任务,因此对它的深入理解对于数据库管理员和开发者至关重要。 InnoDB存储引擎是MySQL中的默认存储引擎,特别适合需要...

    MySQL存储引擎中的MyISAM和InnoDB区别详解

    在使用MySQL的过程中对MyISAM和InnoDB这两个概念存在了些疑问,到底两者引擎有何分别一直是存在我心中的疑问。为了解开这个谜题,搜寻了网络,找到了如下信息: MyISAM是MySQL的默认数据库引擎(5.5版之前),由...

    数据库-Mysql剑谱之数据库引擎.docx

    本文将深入探讨数据库引擎的概念、常见的引擎类型,特别是InnoDB和MyISAM的区别,以便于理解如何根据具体需求选择合适的数据库引擎。 1. **什么是数据库引擎** 数据库引擎是数据库系统中负责管理和控制数据存储、...

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

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

    MySQL存储引擎中MyISAM和InnoDB区别详解

    MyISAM和InnoDB是MySQL中两种最常使用的存储引擎,它们各有特点,适用于不同的应用场景。 1. **事务处理**: - **InnoDB** 支持ACID(原子性、一致性、隔离性、持久性)事务,提供事务安全,适合需要事务处理的...

    mysql-存储引擎-实验四.docx

    实验中涉及到多种存储引擎,包括 MyISAM 和 InnoDB,考察它们的相同点和区别,并对它们的特点进行了详细的分析。 一、实验目的 实验的主要目的是熟悉 MySQL 存储引擎的概念,掌握 MySQL 存储引擎的设置和特点,并...

    MySQL数据库MyISAM存储引擎转为Innodb的方法.doc

    MySQL数据库MyISAM存储引擎转为Innodb的方法.doc

    mySql 存储引擎 启用 Innodb

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

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

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

    03-MySQL逻辑架构和Innodb存储引擎1

    7. **存储引擎组件**:存储引擎是MySQL的核心,负责实际的数据存储和检索,如InnoDB和MyISAM。 【InnoDB存储引擎】 InnoDB是MySQL中最常用的存储引擎,尤其在支持事务处理的场景下。它具备以下特性: 1. **事务...

    myisam和innodb的区别

    InnoDB和MyISAM是MySQL中最常见的两种存储引擎,它们各自具有独特的特性和适用场景。InnoDB因其全面的事务支持、行级锁定和MVCC机制而更适合于需要高度一致性和并发性能的场合;而MyISAM由于其简单的结构和高效的...

Global site tag (gtag.js) - Google Analytics