| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> MySQL的事务概念 -> 正文阅读 |
|
[大数据]MySQL的事务概念 |
重温事务的概念为什么用事务、事务是什么我们规定了,做一件事情,只有成功和失败! 那么由这个例子我们想想事务其实是为了保证什么?
所以**事务其实就是想要做的事情是一个整体!**事务的存在目的就是为了事情能够正确成功的执行。 如果以数据库的角度去看: 那么刚才那个转账的例子,让我们去写一个事务,应该怎么写?
怎么用事务还记得怎么写事务的sql语句吗?
我们来模拟一下A的两个账户(CMBC银行、ICBC银行)之间转账的事务
我能不能只提交一部分事务,一部分事务不提交呢?
问一个面试官可能会问到的问题,我们知道多条SQL语句开启的时候,能保证全部成功、或者全部失败。那么单条SQL语句有没有事务呢?
总结:数据库的事务都是为了解决这种业务场景出现的一门技术,为了保证多个SQL语句,要么全部执行成功,要么全部执行失败。 事务的四大特性是什么?原子性一个事务必须被视为一个不可分割的最小单元,整个事务中的操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作。 一致性数据库总是由一个一致性状态转换到另外一个一致性状态。在前面的例子中,一致性确保了,即使在执行第三条第四条预计之间系统崩溃了,CMBC账户中也不会损失10W,要不然A要哭死,如果是系统崩溃最终事务没有提交,所有事务中所作的修改也不会保存到数据库中。 持久性俗话说就是保证及时落盘; 刚才写了有个undolog能保证原子性,同样的,也有个redolog(重做日志)去保证特殊情况的数据丢失! 隔离性一个事务所作的修改在最终提交之前,对其他事务是不可见的。在前面的例子中,我们执行完第三条语句,第四条语句还没成功执行的时候,事务尚未提交。这个时候去看我们ACMBC中的账号还有10W,如果这个时候去取钱是不可以的,要等待事务提交了才可以。 刚才我们所看到的,是不是都是一个人或者说是一个线程的问题? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/16 1:28:35- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |