InnoDB存储引擎介绍
InnoDB引擎是Mysql的默认的存储引擎,他有很多自己的特性,下面一一列举。
- 支持事务,InnoDB存储引擎主要就是为了在线事务处理(OLTP)的应用而设计的。
- 行锁设计,支持外键,非锁定读。
- 支持多版本的并发控制(MVCC)来获得高并发性。
- 提供了插入缓冲、二次写、自适应哈希索引、预读等高性能和高可用的功能。
上面这些算是 InnoDB 存储引擎的一些特点了,也是它的优势所在,为什么 InnoDB 引擎会使用如此广泛,就是因为它能有很好的性能。
MyISAM储存引擎介绍
- 不支持事务,它的设计目标是面向在线分析的应用(OLAP)。
- 支持全文索引。
- 表锁设计。
- 它的缓冲池只缓冲索引文件,不缓冲数据文件,所以 MyISAM 存储引擎表由
MYD
和MYI
组成,前者存储数据文件,后者存储索引文件。
存储引擎之间的对比
这一部分,主要简要的介绍一下各个存储引擎之间的差别,及主要的作用及特点。
特性对比
存储限制 | 无 | 64TB | 无 | 有 | 无 | 有 |
事务 | 支持 | 支持 | ||||
锁级别 | 表锁 | 行锁 | page | 表 | 行 | 行 |
MVCC(并发控制) | 支持 | 支持 | 支持 | |||
全文索引 | 支持 | |||||
集群索引 | 支持 | |||||
数据缓存和索引缓存 | 支持 | 支持 | 支持 | |||
数据压缩 | 支持 | 支持 | ||||
批量插入速度 | 高 | 低 | 高 | 高 | 很高 | 高 |
集群数据库支持 | 支持 | |||||
外键支持 | 支持 | |||||
适用场景 | 不需要事务的操作;插入、更新少,读取频繁;频繁的统计计算。 | 需要事务的操作;更新数据需要使用行级锁;大数据量读写;大型互联网应用。 | 类似 InnoDB | 数据量不大,需要被频繁的访问,而且数据丢失不会对业务产生比较严重的影响。 | 存储引擎基本上用于数据归档,作为日志表 | 集群 |
存储引擎特性介绍
BDB | 可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性 |
Memory | 数据存储在内存中,重启或崩溃,数据消失,使用哈希索引 |
Archive | 只支持Insert和Select操作,支持索引,非常适合存储归档数据, 目标:高速插入和压缩功能 |
NDB | 集群存储引擎,数据全部放在内存中,高可用、高性能的集群系统 |
Federated | 不存放数据,只是指向一台远程MySQL数据库服务器上的表 |
Maria | 新开发引擎,用于取代MyISAM存储引擎。 支持事务和非事务、缓存、索引文件、行锁、MVCC功能 |
文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:
好好学java
,获取优质学习资源。
相关推荐
MySQL数据库系统提供了多种存储引擎,其中最常用的两种是MyISAM和InnoDB。它们各自具有独特的特性和适用场景,理解二者的性能差异对于优化数据库设计至关重要。 MyISAM引擎是MySQL早期的默认存储引擎,以其高速度和...
MySQL存储引擎--MyISAM与InnoDB区别 MySQL是一种关系型数据库管理系统,它支持多种存储引擎,每种存储引擎都有其特点和优缺。MyISAM和InnoDB是MySQL中最常用的两种存储引擎,它们都有其优缺点,本文将对比MyISAM...
- **行级锁定**:相比MyISAM存储引擎的表级锁定机制,InnoDB采用行级锁定策略,可以显著提高多用户并发操作时的效率。 - **外键约束**:InnoDB支持外键约束,这对于维护数据完整性非常重要。 - **缓冲池**:InnoDB...
在MySQL数据库系统中,MyISAM与InnoDB是最常被提及的两种存储引擎。这两种引擎在功能、性能以及适用场景上存在显著差异,本文将深入探讨这两者之间的区别,并分析它们各自的优势及应用场景。 #### 一、基本概念 - ...
但是对比 MyISAM 的存储引擎,InnoDB 写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。 InnoDB 表的自动增长列可以手工插入,但是插入的如果是空或 0,则实际插入到则是自动增长后到值。可以通过 ...
- **InnoDB与MyISAM索引对比**:InnoDB的索引结构更加复杂,支持更多的高级功能。 #### 事务案例分析 **案例一**:假设有一个事务需要执行一个UPDATE语句,修改`test`表中`id=47`的记录的`v`字段值为18(原值为8)...
MyISAM和InnoDB是MySQL中两种最常使用的存储引擎,它们各有特点,适用于不同的应用场景。 1. **事务处理**: - **InnoDB** 支持ACID(原子性、一致性、隔离性、持久性)事务,提供事务安全,适合需要事务处理的...
### MyISAM与InnoDB对比分析 #### 一、数据存储区别 - **堆表**:数据无序存储,适用于不频繁更新的情况。 - **索引组织表**:表的数据和索引紧密关联,通常主键就是数据的物理排列顺序。 **MyISAM**: - 属于堆...
MySQL存储引擎中的MyISAM和InnoDB是两种最常见的选择,它们各自有独特的特性和适用场景。以下是关于这两种存储引擎的详细对比: 1. **存储结构**: - MyISAM:每个表由三个文件组成,分别是`.frm`(表定义)、`....
MySQL数据库提供了多种存储引擎,其中MyISAM和InnoDB是最为常见的两种。本文将对这两个存储引擎进行深入的对比分析,以帮助读者更好地理解它们的特性和适用场景。 首先,MyISAM是MySQL的默认存储引擎,它源自于传统...
1、MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是IndexedSequentialAccessMethod(有索引的顺序访问方法)的缩写,它是存储记录和文件的标准方法。不是事务安全的,而且不支持外键,如果执行大量的select,...
尽管本篇主要讨论InnoDB存储引擎,但仍值得简要提及InnoDB与之前的默认存储引擎MyISAM之间的区别: - **事务处理**:InnoDB支持事务处理,而MyISAM不支持。 - **行级锁定**:InnoDB支持行级锁定,提高了并发性能。 ...
#### 二、MyISAM存储引擎 **2.1 MyISAM简介** MyISAM是一种非事务性的存储引擎,广泛应用于Web应用、数据仓库等场景。它是MySQL早期版本中最常用的存储引擎之一,尤其适用于读取密集型的应用环境。 **2.2 特性与...
// 查看默认的存储引擎演示:关于MyISAM和InnoDB的简单对比:问:MyISAM和InnoDB引擎的区别MyISAM 是非事务安全型的,而 InnoDB
从提供的文件内容来看,这篇文档主要涉及了MySQL数据库的安装、配置以及优化技巧,特别强调了InnoDB与MyISAM存储引擎的使用和对比。接下来,我将围绕这些知识点展开详细介绍。 首先,文档中出现了很多关于MySQL的...
#### 三、存储引擎对比与选择 | 特性 | InnoDB | MyISAM | Memory | |--------|------------|-----------|----------| | 存储限制 | 64TB | 有 | 有 | | 事务安全 | 支持 | × | × | | 锁机制 | 行锁 | 表锁 | ...
此外,还将对比分析不同存储引擎(MyISAM与InnoDB)在执行批量数据插入时的性能差异。 ### 一、创建数据库与表 首先,创建名为`mysqlsystems`的数据库,并在该数据库中创建两个表:`myisam`与`innodb`。这两个表...
本篇文章主要探讨了MySQL中的三种常用存储引擎:MyISAM、InnoDB和NDBCluster,它们各自拥有独特的特性和适用场景。 首先,MyISAM是MySQL早期的默认存储引擎,它具有以下特性: 1. 不支持事务处理,这意味着MyISAM...