14.2 InnoDB Concepts and Architecture InnoDB的概念和体系结构

14.2.1 MySQL and the ACID Model
14.2.2 The InnoDB Transaction Model and Locking
14.2.3 InnoDB Multi-Versioning
14.2.4 InnoDB Redo Log
14.2.5 InnoDB Undo Logs
14.2.6 InnoDB Table and Index Structures
14.2.7 InnoDB Mutex and Read/Write Lock Implementation

本节中的信息提供背景帮助你得到最好的性能和功能通过使用InnoDB 表,它的目的是:

任何从其他数据库切换到MySQL, 解释那些事情可能是类似的,那些可能是全新的:

任何人从MyISAM 表到InnoDB表,现在InnoDB 默认引擎:

任何人考虑它们的应用结果或者软件栈,来了解设计考虑,性能特点, InnoDB表的扩展

在这个章节,你会学到:

  1. InnoDB 支持ACID 原则

  2. InnoDB如何首先事务, 以及内部的事务工作相比其他你熟悉的数据库

3.InnoDB 如何实现行锁 允许查询和DML语句来同时的读和写相同的表

14.2.1 MySQL and the ACID Model

ACID 模型是一组数据库的设计原则, 强调安全性方面,对于商业数据和关键应用是重要的。

MySQL 包括组件比如 InnoDB 存储引擎,坚持接近ACID 模型,数据是不冲突的和

结果是不扭曲的 通过例外的条件比如软件crashes 和硬件故障。

当你依赖ACID-符合的功能,你不需要重新发明一致性的检查和crash recovery mechanisms.

如果你有额外的软件安全保障,超可靠的硬件,或者一个应用可以容忍少量的数据丢失或者不一致。

下面的章节讨论MySQL 特性, 特别是InnoDB 存储引擎:

A. 自动

C. 一致性

I 隔离

D耐久性

Atomicity:

ACID 模型的自动方面主要涉及InnoDB 事务, MySQL相关的功能:

1.自动设置

2.提交语句

3.回滚语句

  1. 操作 INFORMATION_SCHEMA tables.数据的表

Consistency

ACID 模型的一致性方面主要涉及InnoDB 内部处理来保护数据防止crashes,

MySQL 相关的功能包括:

1.InnoDB doublewrite buffer.

2.InnoDB crash recovery.

Isolation

ACID 模型的隔离方面主要是InnoDB 事务, 特别适用于交易,MySQL 相关功能包括:

1.自动设置

  1. set 隔离级别

3.InnoDB 锁行锁,在性能调优方面,你可以通过INFORMATION_SCHEMA tables:

Durability 耐久性:

ACID 模型的耐久性方面涉及MySQL 软件功能 配合你的硬件配置。

1.InnoDB doublewrite buffer, 开启和关闭 通过innodb_doublewrite 配置选项。

2.配置innodb_flush_log_at_trx_commit.

3.配置sync_binlog

4.配置innodb_file_per_table.

5.写buffer 在一个存储引擎,比如SSD 或者RAID阵列

6.存储设备的电池cache