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表的扩展
在这个章节,你会学到:
InnoDB 支持ACID 原则
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.回滚语句
- 操作 INFORMATION_SCHEMA tables.数据的表
Consistency
ACID 模型的一致性方面主要涉及InnoDB 内部处理来保护数据防止crashes,
MySQL 相关的功能包括:
1.InnoDB doublewrite buffer.
2.InnoDB crash recovery.
Isolation
ACID 模型的隔离方面主要是InnoDB 事务, 特别适用于交易,MySQL 相关功能包括:
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