`
phplaber
  • 浏览: 143851 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

MyISAM和InnoDB

阅读更多

在数据库领域里,数据库引擎(Storage Engine)的概念有着核心的意义,如同发动机对于汽车的意义一样。数据库引擎其实就是数据表的存储类型。

在所有的数据库引擎中,MyISAM和InnoDB占有非常重要的地位。绝大多数数据库里,都是用这两种在存储数据表。

MyISAM是默认的数据库引擎,它基于一种更古老的数据库引擎ISAM,ISAM现在已不可用(Obsolete storage engine)。MyISAM继承了ISAM的优点,同时发展出很多有用的扩展,保证最高性能。每一个MyISAM表都会在磁盘上保存3个文件,文件名就是数据表表名,扩展名分别为:.frm, .MYD和.MYI。这3个文件分别对应表的定义文件,数据文件和索引文件。

 

InnoDB被设计为在处理大量数据时具有良好性能。这种情况下,在CPU的效率上是其它基于磁盘的关系数据库引擎所不能比拟的。InnoDB在内存中有自己的缓冲池来缓存数据和索引,并且通过表空间来存储表和索引。因此,较之于MyISAM用3个单独的文件来存储具有更大的空间利用率。

 

一般情况下,MyISAM和InnoDB具有如下3个方面的区别:

1,MyISAM不支持事务处理(Transactions),而InnoDB支持。因此,在一些对数据非常敏感的场合,如银行系统,就只能用InnoDB来存储数据。

2,MyISAM不支持外键(Foreign key),而InnoDB支持。外键能够保证数据的完整性。

3,MyISAM不支持行级锁(Row-level locking),而InnoDB支持。

 

具体选择哪种数据库引擎,要根据当前应用的特点来决定。一般情况下,选择数据库默认的MyISAM引擎,就能满足大多数应用的要求。

 

(完)

 

 

0
3
分享到:
评论

相关推荐

    MyISAM和InnoDB的异同

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

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

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

    数据库引擎 MyISAM 和 InnoDB 对比

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

    MyISAM和InnoDB索引引擎的B+树索引实现1

    本文主要讨论两种常见的存储引擎——MyISAM和InnoDB,它们在B+树索引实现上的差异。 首先,MyISAM是MySQL早期的默认存储引擎,它在索引方面采用B+树结构。对于主键索引,MyISAM的B+树叶节点存储的是数据记录的物理...

    myisam和innodb的区别

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

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

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

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

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

    MyISAM与InnoDB的索引差异

    MySQL中的存储引擎MyISAM和InnoDB在处理索引上有显著的差异,这些差异主要体现在索引的组织方式以及对数据存储的影响上。两者都基于B+树这种高效的索引结构,但具体实现有所不同。 首先,MyISAM的索引采用非聚集...

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

    InnoDB和MyISAM在计数查询方面有所不同。在InnoDB中,使用SELECT COUNT(*) FROM table可以快速地统计表中的行数,而MyISAM则需要扫描整个表来统计行数。 AUTO_INCREMENT InnoDB和MyISAM在AUTO_INCREMENT方面也有所...

    mysql DB引擎myisam与innodB

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

    Mysql 的存储引擎,myisam和innodb的区别

    主要介绍了Mysql 的存储引擎,myisam和innodb的区别,需要的朋友可以参考下

    MyISAM,InnoDB存储引擎1

    其中,MyISAM和InnoDB是最常用的两种存储引擎,各有其特点和适用场景。 MyISAM存储引擎是MySQL早期的默认引擎,以高速存储和检索以及全文搜索能力著称。在MyISAM中,每个表由三个物理文件组成:.frm存储表定义,....

    MyISAM InnoDB 区别

    InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度...

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

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

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

    在MySQL中,MyISAM和InnoDB是最常见的两种存储引擎,它们各自有独特的特性和适用场景。 首先,我们来看一下MySQL默认存储引擎的变迁。在MySQL 5.1之前的版本,MyISAM是默认的存储引擎,它以快速读取和较小的内存...

    MySQL两种表存储结构MyISAM和InnoDB的性能比较测试

    MySQL两种表存储结构MyISAM和InnoDB的性能比较测试 在 MySQL 中,MyISAM 和 InnoDB 是两种主要的表存储结构,它们在性能方面存在着一定的差异。MyISAM 是 MySQL 的默认存储引擎,而 InnoDB 是一种事务安全的存储...

    MyISAM和InnoDB引擎优化分析

    在MySQL中,MyISAM和InnoDB是最常见的两种存储引擎,各自具有独特的特性和优化策略。 MyISAM引擎以其快速的全文搜索、对表锁的高效管理以及对内存的高效利用而受到欢迎。然而,它的主要缺点是不支持事务处理和行级...

Global site tag (gtag.js) - Google Analytics