IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL之TCL(事务控制语言) -> 正文阅读

[大数据]MySQL之TCL(事务控制语言)

当当当当~~~~欢迎大家阅读,今天我们学习事务控制语言?

事务

一、概念

一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行

存储引擎

1、概念:在mysql中的数据用各种不同的技术存储在文件(或内存)中
2、通过show engines;来查看mysql支持的存储引擎
3、在mysql中用的最多的存储引擎有:innodb,myisam,memory等。其中innodb支持事务,而myisam,memory等不支持事务。

二、事务的特性

ACID
Atomicity:原子性:一个事务不可再分割,要么都执行,要么都不执行
Consistency:一致性:一个事务执行会使数据从一个一致状态切换到另外一个一致状态
Isolation::隔离性:一个事物的执行不受其他事务的干扰
Durability:持久性:一个事务一旦提交,则会永久的改变数据库的数据

三、事务的创建

1、隐式事务

含义:事务没有明显的开启和结束的标记

比如:insert、update、delete语句
delete from表 where id=1;

2、显式事务

事务具有明显的开启和结束的标记
前提:必须先设置自动提交功能为禁用set autocommit=0;

3、步骤

步骤1:开启事务
set autocommit=0;
start transaction;

步骤2:编写事务中的sql语句(select insert update delete)
语句1;
语句2;
...

步骤3:结束事务
commit;提交事务
rollback;回滚事务

四、演示事务的使用步骤?

1、开启事务
set autocommit=0
start transaction;

2、编写一组事务的语句
update account set balance =500 where username='张无忌';
update account set balance =1500 where username='赵敏';

3、结束事务

rollback;
commit;
savepoint 节点名;设置保存点

select * from account;

五、事务并发问题的介绍

1、并发问题的介绍

对于同时运行的多个事务,当这些事务访问数据库中相同的数据时,如果没有采取必要的隔离机制,就会导致各种并发问题。
脏读:两个事务T1,T2,T1读取了已经被T2更新但还没有被提交的字段,之后,若T2回滚,T1读取的内容就是临时且无效的。
不可重复读:对于两个事务T1,T2,T1读取了一个字段,然后T2更新了该字段,之后,T1再次读取同一个字段, 值就不同了。
幻读:对于两个事务T1,T2,T1从一个表中读取了一个字段,然后T2在该表中插入了一些新的行。之后,如果T再次读取同一个表,就会多出几行。

2、数据库事务的隔离性

数据库系统必须具有隔离并发运行各个事务的能力,使他们不会相互影响,避免各种并发问题。

3、数据库提供的4种事务隔离级别

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?脏读 ? ? ? ? ?不可重复读? ? ? ? ? ??幻读
读未提交数据(read uncommitted): ? √ ? ? ? ? ? ? ? ? ? ? √? ? ? ? ? ? ? ? ? ? ? ?√
读已提交数据(read committed):? ? ? ? ? × ? ? ? ? ? ? ? ? ? ? √? ? ? ? ? ? ? ? ? ? ? ?√
可重复读(repeatable read):? ? ? ? ? ? ? ?×? ? ? ? ? ? ? ? ? ? ?×? ? ? ? ? ? ? ? ? ? ? ?√
串行化(serializable):? ? ? ? ? ? ? ? ? ? ? ? ? × ? ? ? ? ? ? ? ? ? ? ×? ? ? ? ? ? ? ? ? ? ? ?×

oracle:支持的2种事务隔离级别第二个和第四个,默认的事务隔离级别为第二个:read committed
mysql:支持4种事务隔离级别,默认的事务隔离级别为第三个:repeatable read

查看当前隔离级别:select @@tx_isolation;
设置隔离级别:set session transaction isolation level read uncommitted;
设置数据库系统的全局的隔离级别:set global transaction isolation level read committed;

六、演示savepoint的使用

set autocommit=0;
start transaction;
delete from account where id=25;
savepoint a;#设置保存点
delete from account where id=28;
rollback to a;#回滚到保存点
select * from account;

以上就是事务控制语言啦,希望我的文章对你有所帮助,如果有错误的地方还望大家批评指正,谢谢大家阅读!??

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:37:16  更:2022-03-15 22:38:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:07:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码