InnoDB和ACID模型

62 阅读2分钟

InnoDB和ACID模型

ACID模式是一组数据库设计原则强调的是,对于业务数据和关键任务应用重要的可靠性方面。MySQL包含诸如InnoDB存储引擎严格遵循ACID模型,因此数据不会损坏,结果也不会因软件崩溃和硬件故障等异常情况而失真。当您依靠符合ACID的功能时,无需重新发明一致性检查和崩溃恢复机制。如果您有其他软件保护措施,超可靠的硬件或可以容忍少量数据丢失或不一致的应用程序,则可以调整MySQL设置以牺牲一些ACID可靠性来获得更高的性能或吞吐量。

以下各节讨论MySQL功能(尤其是InnoDB存储引擎)如何 与ACID模型的类别进行交互:

  • A:原子性。
  • C:一致性。
  • I:隔离性。
  • D:耐久性。

原子性

ACID模型 的原子性方面主要涉及InnoDB 事务。相关的MySQL功能包括:

  • 自动提交设置。
  • COMMIT 声明。
  • ROLLBACK 声明。
  • INFORMATION_SCHEMA 表中的 操作数据。

一致性

ACID模型 的一致性方面主要涉及内部InnoDB处理,以防止数据崩溃。相关的MySQL功能包括:

隔离

ACID模型 的隔离方面主要涉及InnoDB 事务,尤其是适用于每个事务的隔离级别。相关的MySQL功能包括:

  • 自动提交设置。
  • SET ISOLATION LEVEL 声明。
  • InnoDB 锁定 的底层细节。在性能调整期间,您可以通过INFORMATION_SCHEMA表格查看这些详细信息 。

耐用性

ACID模型 的持久性方面涉及与特定硬件配置交互的MySQL软件功能。由于取决于您的CPU,网络和存储设备的功能的可能性很多,因此为具体的准则提供最复杂的方面。(这些准则可能采取购买“ 新硬件 ”的形式 。)相关的MySQL功能包括:

  • InnoDB doublewrite buffer,由innodb_doublewrite 配置选项打开和关闭 。
  • 配置选项 innodb_flush_log_at_trx_commit
  • 配置选项 sync_binlog
  • 配置选项 innodb_file_per_table
  • 存储设备(例如磁盘驱动器,SSD或RAID阵列)中的写缓冲区。
  • 电池后备存储设备中的缓存。
  • 用来运行MySQL的操作系统,特别是它对fsync()系统调用的支持。
  • 不间断电源(UPS)保护运行MySQL服务器并存储MySQL数据的所有计算机服务器和存储设备的电源。
  • 您的备份策略,例如备份的频率和类型以及备份保留期。
  • 对于分布式或托管数据应用程序,MySQL服务器的硬件所位于的数据中心的特定特性,以及数据中心之间的网络连接。

更多内容欢迎关注我的个人公众号“韩哥有话说”,100G人工智能学习资料,大量后端学习资料等你来拿。

qrcode_for_gh_3214f9e3470a_258.jpg