MySQL架构介绍(5.存储引擎)

MySQL内建主流存储引擎主要死InnoDB和MyISAM

1)InnoDB

MySQL默认的事务型存储引擎,当前互联网行业MySQL数据库的主流选择,主要用来处理大量短期事务,大部分正常提交,很少部分回滚。

数据存储在表空间中,由一系列数据文件组成。MySQL4.1版本后,每个表数据和索引存储在单独文件中。

InnoDB采用MVCC机制支持高并发事务处理,并且实现了四个标准隔离级别。默认repeatable read可重复读,通过间隙锁策略防止幻读出现。间隙锁使得InnoDB锁定查询行和索引间隙,以防止幻读行插入。

InnoDB基于聚集索引建立,聚集索引对主键查询性能高。二级索引中必须包含主键列,若是主键列很大,则其他所有的索引都会很大。因此,若表上的索引很多的话,主键索引尽可能设计小一些。

InnoDB性能高效,主要是从磁盘读数据时采用可预测读,在内存中自动创建hash索引以加速读操作的自适应。详见官方手册“InnoDB事务模型和锁”。

通过一些诸如XtraBackup工具InnoDB可以做到热备份,但其他存储引擎都无法热备。

2)MyISAM

MyISAM5.1版本前是默认存储引擎。MyISAM提供了大量特性,包括全文索引、压缩、空间函数等,但不支持事务和行级锁,这就导致一旦挂掉后无法安全恢复。

存储:

MyISAM会存储两个文件:数据文件和索引文件,分别以.myd和.myi为扩展名。表包括静态行和动态行。MySQL会根据表的定义来决定采用何种格式。MyISAM表可以存储记录行数,一般受限于可用磁盘空间,或者操作系统中单个文件的最大尺寸。

特性:

加锁并发,整张表加锁非行锁。读操作对所读表加共享锁,写操作对所有表加排他锁。但读操作时可以并发插入。

修复,可以手工或自动执行检查修复,但修复过程中可能会丢失数据且操作慢。

检查指令:check table 表名

修复指令:repair table 表名

索引特性,可以创建索引,支持全文索引。

3)其他存储引擎

除了上述MySQL内建存储引擎外,MySQL还支持其他存储引擎,如:archive、blackhole、csv、federated和memory等。

(0)

相关推荐

  • 开发者都需要了解的mysql索引四大存储引擎

    MySQL索引分为普通索引.唯一索引.主键索引.组合索引.全文索引.索引不会包含有null值的列,索引项可以为null(唯一索引.组合索引等),但是只要列中有null值就不会被包含在索引中. 接着让我 ...

  • Mysql相关操作

    Mysql相关操作

  • 万字总结 MySQL核心知识,赠送25连环炮

    回复"000"获取大量电子书 前言 大家好,我是老田,之前写过 JVM.并发编程连环炮.然后有很多小伙伴私下找我就我继续把MySQL的连环炮整理出来,但是由于本人比较懒,又加上最近 ...

  • MySQL架构和MySQL索引

    MySQL架构和MySQL索引

  • 初探Mysql架构和InnoDB存储引擎

    前言 1.undo log和redo log了解过吗?它们的作⽤分别是什么? 2.redo log是如何保证事务不丢失的? 3.mysql的事务是先提交还是先刷盘? 4.更新操作为什么不直接更新磁盘反 ...

  • MySQL基础篇(05):逻辑架构图解和InnoDB存储引擎详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.MySQL逻辑架构 1.逻辑架构图 基于下面的逻辑架构图,可以大致熟悉MySQL各个架构组件之间的协同工作关系. 很经典的C/S架构风格, ...

  • MySQL主从复制架构介绍

    老哥有话说 你们的老哥又来啦,前几天发了很多 MySQL 优化方面的文章,优化玩腻了,我们来点 MySQL 高可用方面的知识.今天我们来讲讲主从复制咋样,同意的小赞点起来,在看刷起来.如果你觉得通过老 ...

  • MySQL数据库的事务及存储引擎

    一.关系型数据库与非关系型数据库 1.关系型数据库的特点: 1)数据以表格的形式出现 2)每行为各种记录名称 3)每列为记录名称所对应的数据域 4)许多的行和列组成一张表单 5)若干的表单组成数据库 ...

  • 工业机器人控制系统架构介绍(超多干货)

    本文比较了机械臂和移动机器人两种工业机器人的控制系统方案,对其特点进行了介绍. 以上分类是根据应用对象,此外,市面上更多的是通用型运动控制器,即控制非标设备的. 1 控制器底层方案 1.1 机械臂类 ...

  • Pony.ai 硬件系统架构介绍

    自动驾驶是软硬件结合的系统工程,本文将为您解读Pony.ai 自动驾驶车辆的硬件架构.自研的计算系统,以及深度讲解自动驾驶行业所需的硬件技术. 01 产汽车电子电气架构回顾 传统汽车由Electron ...

  • 11、存储引擎

    查看表类型 查看存储引擎 > show engines; > show table status \G; > show table status like '%t1%' \G; 设置 ...

  • BAT小伙自研存储引擎,火爆Github

    大家好,我是Carl. 最近很多小伙伴问我关于一些,项目的选择,相信如果是C 后台开发路线的话,基本都会去做WebServer 服务器. 我在给小伙伴答疑,包括看了这么多简历,发现WebServer这 ...