2019独角兽企业重金招聘Python工程师标准>>>

ACID模型是一组强调高可靠性的数据库系统设计原则。InnoDB存储引擎坚持ACID原则,确保即使在软件崩溃甚至是硬件故障的情况下,数据也不会损坏。当你需要依赖兼容ACID原则的业务时,你不必重复造轮子去实现一致性检查和崩溃恢复机制。在一些情况下,如果你有额外的安全保证机制,可靠的硬件条件,或者应用能够容忍少量的数据丢失和不一致,你可以调整MYSQL设置,牺牲掉ACID的一些可靠性换取更高的性能和数据吞吐量。

ACID原则

  • A: atomicity (原子性)
  • C: consistency (一致性)
  • I: isolation (隔离性)
  • D: durability (持久性)

Atomicity(原子性)

原子性主要涉及到InnoDB事务。相关的MYSQL特征包括:

Autocommit COMMIT语句 ROLLBACK语句

Consistency(一致性)

一致性主要涉及到InnoDB内部软件崩溃时的数据保护恢复机器。相关的MYSQL特征包括:

  • InnoDB双写缓冲
  • InnoDB崩溃恢复

Isolation(隔离性)

隔离性主要涉及到InnoDB具体事务的隔离级别。相关的MYSQL特征包括:

Autocommit SET ISOLATION LEVEL语句 InnoDB锁的低层细节。在性能调优时,你可以通过INFORMATION_SCHEMA表看到这些细节

Durability(持久性)

持久性主要涉及MySQL软件特征与你实际硬件配置的相互作用。这个特性更多的取决于你的CPU,网络,和存储设备的能力。相关的MYSQL特征包括:

  • innodb_doublewrite
  • innodb_flush_log_at_trx_commit
  • sync_binlog
  • innodb_file_per_table
  • 磁盘驱动
  • 操作系统是否支持fsync()系统调用
  • 备份策略
  • 分布式

转载于:https://my.oschina.net/jockchou/blog/477836

MySQL数据库和ACID模型相关推荐

  1. mysql acid介绍_InnoDB ACID模型介绍

    ACID模型是一组数据库设计原则,它们强调对于业务数据和任务关键型应用程序非常重要的可靠性概念.MySQL有诸如InnoDB存储引擎的组件与ACID模型紧密相连,这样数据就不会被损坏,也不会因为软硬件 ...

  2. asp.net mysql 创建变_[ASP.net教程]EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型...

    [ASP.net教程]EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型 0 2018-06-30 07:00:08 官方教程: ...

  3. 连接mysql数据库,创建用户模型

    安装与配置python3.6+flask+mysql数据库 下载安装MySQL数据库 下载安装MySQL-python 中间件 pip install flask-sqlalchemy (Python ...

  4. ef mysql 数据模型,EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型...

    官方教程:https://docs.microsoft.com/en-us/aspnet/core/data/?view=aspnetcore-2.1 使用EF CodeFirst在MySql中创建新 ...

  5. MySQL数据库:事务和ACID实现原理

    一.什么是事务: 数据库的事务是并发控制的基本单位,是指逻辑上的一组操作,要么全部执行,要么全部不执行. 1.事务的特性: (1)原子性:事务是一个不可分割的工作单元,事务里的操作要么都成功,要么都失 ...

  6. mysql数据库导出模型到powerdesigner,PDM图形窗口中显示数据列的中文注释

    1,mysql数据库导出模型到powerdesigner 2,CRL+Shift+X 3,复制以下内容,执行 '******************************************** ...

  7. go 连接服务器 并存放图片_基于 Go 语言开发在线论坛(二):通过模型类与MySQL数据库交互...

    在这篇教程中,我们将在 MySQL 中创建一个 chitchat 数据库作为论坛项目的数据库,然后在 Go 项目中编写模型类与之进行交互.你可以本地安装 MySQL 数据库,也可以基于 Docker ...

  8. ER图和关系模型到MySQL数据库表

    本篇主要介绍了MySQL数据库表从ER图到关系模型,再到数据库表的创建过程及其表结构的修改.通过本篇的学习,可以掌握以下内容: ● 应用ER图和关系模型创建数据库表 ● 数据库表结构的修改 1.moo ...

  9. 与mysql数据库的交互实战_基于 Go 语言开发在线论坛(二):通过模型类与MySQL数据库交互...

    在这篇教程中,我们将在 MySQL 中创建一个 chitchat 数据库作为论坛项目的数据库,然后在 Go 项目中编写模型类与之进行交互.你可以本地安装 MySQL 数据库,也可以基于 Docker ...

最新文章

  1. Spring Boot 面试杀手锏:自动配置原理
  2. 第十七课.Pytorch-geometric入门(二)
  3. LeetCode Interleaving String(动态规划)
  4. 高并发IM系统架构优化实践
  5. 【目标检测_CentripetalNet】CentripetalNet: Pursuing High-quality Keypoint Pairs for Object Detection_2020
  6. 初探Golang(4)-map和流程控制语句
  7. KVM 虚拟机 调整内存与CPU
  8. App ui界面设计模板素材,分分钟激活灵感
  9. 一种新的排序算法,基于优先队列
  10. lastLogon和lastLogonTimestamp的区别
  11. 微服务架构-设计总结
  12. EXCEL IFS函数的使用
  13. 在C#应用程序中嵌入暴风影音播放器
  14. Android LayoutInflater源码分析
  15. 2021年立秋是什么时候?立秋的习俗有哪些?
  16. C++17 any类(万能容器)详解
  17. docker安装RabbitMQ:Error starting userland proxy: listen tcp 0.0.0.0:15672: bind: address already in u
  18. STM32定时 计算公式
  19. 解决Visio用直线手画的形状不能填充问题
  20. window系统下添加路由的方法

热门文章

  1. php describe,php – 在Zend框架中的许多DESCRIBE查询
  2. git设置master权限_git怎么控制成员的权限?
  3. python柱形图代码_Python数据可视化:基于matplotlib绘制「条形图」
  4. maven 整体打包_Spirng boot maven多模块打包不踩坑(示例代码)
  5. Qt使用invokeMethod反射机制实现进程间的通信
  6. linux操作系统之线程同步及互斥量
  7. C++ 继承中的同名成员的情况01
  8. C++关于虚基类、构造函数、析构函数、成员对象的两个程序浅析
  9. C++子类父类成员函数的覆盖和隐藏实例详解
  10. Python3迭代器和生成器