ITPub博客

首页 > 数据库 > > 14.2 InnoDB 和 ACID 模型

14.2 InnoDB 和 ACID 模型

作者:飘絮絮絮丶 时间:2020-05-12 10:14:13 0 删除 编辑

参考官方文档:

dev.mysql.com/doc/refma


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 locking 的底层细节。 在性能调优期间,您可以通过INFORMATION_SCHEMA表格查看这些详细信息。


持久性


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


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

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69946831/viewspace-3135030/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-09-09

  • 博文量
    2646
  • 访问量
    42218