14.2 InnoDB and the ACID Model

ACID 模型是一组数据库设计原则,强调可靠性方面对于商业数据和关键人物。

MySQL 包含组件比如InnoDB存储引擎坚持ACID 模型,

这样数据不会被破坏和结果不受特殊条件的弯曲 比如软件crashes 和硬件故障

当你依靠ACID兼容的功能, 你不需要重复发明一致性检查和 crash recovery机制。

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

你可以调整MySQL 设置来交换ACID 可靠性的一些对于更好的性能和吞吐量

下面的章节讨论MySQL的特点, 特别是InnoDB存储引擎,与ACID模型交互:

    A: atomicity.

    C: consistency.

    I:: isolation.

    D: durability. 

原子性:

ACID 模型的原子性方面主要涉及InnoDB 事务,MySQl相关的功能包含:

1.自动提交设置

2. 提交语句

3. 回滚语句

4.从INFORMATION_SCHEMA 操作数据

一致性:

ACID 模型的一致性方面主要涉及 internal InnoDB 处理来保护数据(crash),Mysql相关功能包括:

    InnoDB doublewrite buffer.

    InnoDB crash recovery. 

隔离:

ACID 模型的隔离方面主要涉及InnoDB 事务, 特别适用于交易系统

1.Autocommit  自动提交设置

2.SET ISOLATION LEVEL statement. 

3. InnoDB 锁low-level 细节, 在性能调优,你可以查询那些细节通过INFORMATION_SCHEMA tables. 

Durability 耐久性:

ACID 模型的耐久性方面涉及MySQL 软件功能和你的特定的硬件配置交互。

很多可能的取决于你的CPU,网络,存储设备,

1. InnoDB doublewrite buffer,  开启和关闭通过innodb_doublewrite configuration option.

2.Configuration option innodb_flush_log_at_trx_commit. 

3.Configuration option sync_binlog. 

4.Configuration option innodb_file_per_table. 

5.写buffer 到一个存储设备,比如磁盘,ssd或者raid阵列

14.2 InnoDB and the ACID Model的更多相关文章

  1. 14.2.1 MySQL and the ACID Model

    14.2 InnoDB Concepts and Architecture InnoDB 概念和结构体系: 14.2.1 MySQL and the ACID Model 14.2.2 InnoDB ...

  2. 14.3 InnoDB Multi-Versioning InnoDB 多版本

    14.3 InnoDB Multi-Versioning InnoDB 多版本 InnoDB 是一个多版本的存储引擎,它保持信息关于改变的数据老版本的信息, 为了支持事务功能比如并发和回滚. 这些信息 ...

  3. 14.19 InnoDB and MySQL Replication InnoDB 和MySQL 复制:

    14.19 InnoDB and MySQL Replication InnoDB 和MySQL 复制: MySQL 复制工作对于InnoDB 表和对于MyISAM表. 它是可能使用复制的方式 存储引 ...

  4. 14.18 InnoDB Backup and Recovery 备份和恢复:

    14.18 InnoDB Backup and Recovery 备份和恢复: 安全数据库管理的关键是 做定期的备份,依赖你的数据卷, MySQL server的数量和数据库的负载,你可以使用那些技术 ...

  5. 14.9 InnoDB Row Storage and Row Formats InnoDB 行存储和行格式:

    14.9 InnoDB Row Storage and Row Formats InnoDB 行存储和行格式: 14.9.1 Overview of InnoDB Row Storage 14.9.2 ...

  6. mysql innodb事务的ACID及其实现的保证机制

    MySQL事务的ACID,一致性是最终目的.保证一致性的措施有:A原子性:靠undo log来保证(异常或执行失败后进行回滚).D持久性:靠redo log来保证(保证当MySQL宕机或停电后,可以通 ...

  7. 引擎设计跟踪(九.14.3.4) mile stone 2 - model和fbx导入的补漏

    之前milestone2已经做完的工作, 现在趁有时间记下笔记. 1.设计 这里是指兼容3ds max导出/fbx格式转换等等一系列工作的设计. 最开始, Blade的3dsmax导出插件, 全部代码 ...

  8. MySQL优化篇系列文章(二)——MyISAM表锁与InnoDB锁问题

    我可以和面试官多聊几句吗?只是想... MySQL优化篇系列文章(基于MySQL8.0测试验证),上部分:优化SQL语句.数据库对象,MyISAM表锁和InnoDB锁问题. 面试官:咦,小伙子,又来啦 ...

  9. Shared and Exclusive Locks 共享和排它锁

    14.5 InnoDB Locking and Transaction Model InnoDB 锁和事务模型 14.5.1 InnoDB Locking 14.5.2 InnoDB Transact ...

随机推荐

  1. Dota兄订餐——静态代理(java)

    理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼得水,享受游刃有余的乐趣. 代理模式是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,Pr ...

  2. 蓝牙(BLE)应用框架接口设计和应用开发——以TI CC2541为例

    本文从功能需求的角度分析一般蓝牙BLE单芯片的应用框架(SDK Framework)的接口设计过程,并以TI CC2541为例说明BLE的应用开发方法. 一.应用框架(Framework) 我们熟知的 ...

  3. linux c 系统报错

    本文中的错误是指在代码编译完全正确程序可运行的情况下,因为没有成功调用程序中的某些系统调用函数而产生的错误.往往这些系统调用函数通过返回值(比如1,0,-1)来说明其是否调用成功,而程序员需要知道详细 ...

  4. S2SH框架集成详解(Struts 2.3.16 + Spring 3.2.6 + Hibernate 3.6.10)

    近期集成了一次较新版本的s2sh,出现了不少问题,网上资料也是良莠不齐,有的甚至就是扯淡,简单的把jar包扔进去就以为是集成成功了,在这里整理一下详细的步骤,若哪位有什么不同看法,可以留言,欢迎批评改 ...

  5. Eclipse中输入系统变量和运行参数--转

    原文地址:http://chenzhou123520.iteye.com/blog/1931670 在开发时,有时候可能需要根据不同的环境设置不同的系统参数,我们都知道,在使用java -jar命令时 ...

  6. PHP MySQL 插入多条数据

    PHP MySQL 插入多条数据 使用 MySQLi 和 PDO 向 MySQL 插入多条数据 mysqli_multi_query() 函数可用来执行多条SQL语句. 以下实例向 "MyG ...

  7. 使用NPOI插件读取excel模版修改数据后保存到新目录新文件中

    添加引用: using System.IO; using NPOI.XSSF.UserModel; using NPOI.SS.UserModel; using NPOI.HSSF.UserModel ...

  8. 微信小应用vs progressive-web-apps

    https://developers.google.com/web/progressive-web-apps/

  9. 3.AOP入门1

    1.定义1.1基本概念2. 1.定义 1.1基本概念 AOP:aspect object programing面向切面编程 aop编程的要点在于关注点和切入点 关注点:指的是代码中的重复部分,每次实现 ...

  10. Hive学习之七《 Sqoop import 从关系数据库抽取到HDFS》

    一.什么是sqoop Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql.postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL ...