美文网首页高性能MySQL
MySQL存储引擎介绍

MySQL存储引擎介绍

作者: Coding小聪 | 来源:发表于2018-07-03 23:49 被阅读15次

数据库中都会有存储引擎的概念,MySQL的特点就是其存储引擎支持插件式的,存储引擎用来处理数据库相关的CRUD操作。

MySQL中常见的存储引擎有如下几种:

  • InnoDB
  • MyISAM
  • Memory
  • NDB Cluster
  • Federated
  • CSV
  • Archive

InnoDB最开始作为第三方存储引擎存在,其诞生的时间比MySQL本身还要早,它被包括在MySQL数据库所有的二进制发行版本中,并从MySQL5.5开始取代MyISAM的位置成为默认的表存储引擎。另外,其他的存储引擎官方已经不再维护和开发,所以我们应该要尽可能使用InnoDB

可以通过show engines查看MySQL支持的存储引擎

当前MySQL版本支持的存储引擎

各存储引擎特性

先简述一下两个概念,OLTP和OLAP。


OLTP和OLAP的区别

InnoDB

  1. 面向OLTP的应用,支持事务;
  2. 支持行锁定、外键;
  3. 不仅可以使用文件系统,还能使用裸设备;
  4. 实现了SQL标准的4种隔离级别。

MyISAM

  1. 不支持事务,面向OLAP应用,如数据仓库;
  2. 并发时锁表;
  3. 索引容易损坏、数据容易丢失;
  4. 数据文件可以直接拷贝到另一台服务器使用。

MyISAM存储引擎创建的表由.MYD和.MYI文件组成。.MYD用来存放数据 ,.MYI存放索引。

表a和b的存储文件
a表的创建语句:create table a(a int) engine=myisam;。b表的创建语句:create table b(a int);其默认的存储引擎为InnoDB。
a.frm和b.frm为表的结构文件,可以通过mysqlfrm将frm文件转成create table语句。
mysqlfrm --diagnostic /var/lib/mysql/test/a.frm

mysqlfrm工具在MySQL Utilities工具包中,使用前需要先安装Utilities
.MYD是MyISAM存储引擎的数据存储文件,.MYI是MyISAM存储引擎的索引存储文件,.ibd是InnoDB存储引擎的数据和索引存储文件。

NDB

NDB存储引擎也叫NDB Cluster存储引擎,主要用于MySQL Cluster分布式集群环境。

Memory

  1. 全内存存储,会话失效后数据丢失;
  2. 支持哈希索引。

CSV

  1. 数据通过csv文件存储;
  2. 要求每个列都是NOT NULL属性。

Federated

Federated有点类似于Oracle的dblink,主要用于远程存取其他MySQL服务器上的数据。

各大存储引擎特性对比

参考
《MySQL技术内幕:InnoDB存储引擎》

相关文章

  • MySql高级之常见的Join查询(一)

    MySql的存储引擎介绍 : 常用的MySql存储引擎只有两个:MyISAM以及InnoDB。 两个存储引擎的区别...

  • MySQL介绍

    mysql介绍 其他数据库介绍 mysql特点 mysql存储引擎类型及特点 关于mysql单表存储 mysql介...

  • MySQL-InnoDB拾遗

    之前写过一篇介绍MySQL中存储引擎的文章MySQL之存储引擎,在实际工作中,还是以InnoDB存储引擎为主,此文...

  • 走向DBA之存储引擎(1)

    一、存储引擎介绍: 二、功能了解: 三、存储引擎种类: 3.1Oracle的MySQL 3.2MySQL支持的其他...

  • 2018-03-19

    mysql MyISAM引擎和InnoDB的介绍 1、MyISAM MyISAM是MySQL的默认存储引擎,基于...

  • MySQL-存储引擎

    1. 存储引擎种类 1.1 介绍(Oracle MySQL) MySQL 5.5 之前,使用MyISAM引擎作为模...

  • 01MySQL体系结构与存储引擎

    内容介绍 本节会分享MySQL 体系结构与存储引擎,包括 MySQL 数据库的体系结构、MySQL 支持的存储引擎...

  • mysql 索引

    注释:此文章的索引介绍是基于InnoDB存储引擎来介绍的,没特别声明則Mysql默认式InnoDB存储引擎存储。 ...

  • Mysql基础-存储引擎详述

    前文索引:Mysql基础-存储引擎简述 说明:本节将详细介绍一下常用的Mysql存储引擎特性 MyISAM 它不支...

  • InnoDB介绍

    InnoDB介绍 InnoDB是事务安全的mysql存储引擎,也是mysql的默认存储引擎,特点是行锁设计、支持M...

网友评论

    本文标题:MySQL存储引擎介绍

    本文链接:https://www.haomeiwen.com/subject/vhtsuftx.html