zoukankan      html  css  js  c++  java
  • 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 Multi-Versioning
    14.2.3 InnoDB Redo Log
    14.2.4 InnoDB Undo Logs
    14.2.5 InnoDB Table and Index Structures
    14.2.6 InnoDB Mutex and Read/Write Lock Implementation
    
    
    本节中的信息提供了背景帮助你得到最多的歌功能和性能 在使用InnoDB表, 它的目的是:
    
    1. 任何从其他数据库转到MySQL的, 解释那些事情可能看起来类似的 和 哪些是全新的:
    
    2. 任何从MyISAM 表到InnoDB, InnoDB 是默认的存储引擎
    
    3. 任何考虑它们的应用结构或者软件栈, 了解设计思路,性能特点,在细节上InnoDB表的可扩展性
    
    在这个章节:
    
    1.InnoDB 如何支持ACID 原则
    
    
    2.多版本控制(MVCC) 让事务 从查看或者修改相互的数据在适当的时间
    
    
    3.InnoDB的物理结构 ,比如表,indexes,tablespaces,undo logs,和redo log.
    
    
    
    14.2.1 MySQL and the ACID Model  MySQL和ACID 模型
    
    
    ACID 模型是一组数据库设计原则,强调可靠性的方面对于关系型数据和关键任务应用的重要性
    
    MySQL 包含的组件比如InnoDB 存储引擎紧紧追随ACID 事务模型,
    
    使数据不会冲突,结果是不会曲解 在特别的条件 比如软件crash和硬件的故障。
    
    
    当你依赖于 ACID一致性功能,你不需要重新发明轮子来实现一致性检查和crash recovery 机制。
    
    
    如果你有额外的软件保障,超可靠的硬件,或者一个应用可以容忍很小的数据丢失或者恶补一致性,
    
    你可以调整MySQL设置来交换一些 ACID 可靠性来得到更好的性能。
    
    下面的章节描述MySQL的特点, 特别是InnoDB 存储引擎,与ACID 模型的互动:
    
    
    
    A: 自动的
    
    C: 一致性
    
    I: 隔离
    
    D: 持久性
    
    
    Atomicity
    
    ACID 模型的atomicity  方面主要涉及InnoDB事务, 依赖的MySQL 功能包括:
    
    
    1.自动提交设置
    
    2.COMMIT 语句
    
    3.ROLLBACK 语句
    
    4.操作INFORMATION_SCHEMA 表的数据
    
    
    一致性:
    
    ACID 事务的一致性方面主要涉及内部的InnoDB处理来保护数据在crash时,相关的功能包括:
    
    InnoDB doublewrite buffer.
    
    InnoDB crash recovery.
    
    
    隔离:
    
    ACID 模型的隔离方面主要涉及InnnoDB 事务, 特别的 隔离级别应用于每个事务。 相关的MySQL 功能包括:
    
    
    1.自动提交设置:
    
    
    2.设置隔离级别语句:
    
    3. InnoDB 锁定 行锁细节, 在性能调优,你可以查看INFORMATION_SCHEMA tables的细节。
    
    
    持久性:
    
    ACID 模型的持久性方面涉及MySQL 软件功能与特定的硬件配置有关。
    
    
    因为 许多可能的依靠你的CPU,网络和存储设备的能力,
    
    
    这方面是最复杂的来提供具体的指导方针
    
    InnoDB doublewrite buffer, 打开和关闭  innodb_doublewrite 配置选项;
    
    
    1.配置选项 innodb_flush_log_at_trx_commit.
    
    
    2.配置选项 sync_binlog.
    
    
    3.配置选项  innodb_file_per_table.
    
    
    4.buffer 在一个存储设备,比如disk drive,SSD,或者RAID 阵列
    
    5.电池高速缓存
    
    6.操作系统用于运行MySQL,特别对于fsync()系统调用的支持
    

  • 相关阅读:
    #include 和 #pragma comment 的相对路径起点
    linux学习之——phpMyadmin配置
    linux学习之——LAMP配置
    python学习之——文件过滤,不显示文件中以‘#’开头的行
    python学习之——元组中两数相加之和等于某数
    python学习之——识别标识符&关键字
    python学习之——single number
    python学习之——Add Digits
    python学习之——猜大小
    python学习之——冒泡排序
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350725.html
Copyright © 2011-2022 走看看