mysql--隔离级别--提交读未提交读

提交读

准备工作:
create database test;
drop table test.read_committed;
create table test.read_committed(number int, text varchar(15));

1.更改隔离级别
窗口一:
set session transaction isolation read committed;

2.开启事务
窗口一:
start transaction;
窗口二:
start transaction;

3.查询
窗口一:
select * from test.read_committed;
查询结果:

mysql> select * from test.read_committed;
+--------+---------------+
| number | text          |
+--------+---------------+
|   NULL | Hello, World! |
|   NULL | Hello, World! |
+--------+---------------+
2 rows in set (0.00 sec)

4.插入数据
窗口二:
insert into test.read_committed (text) values ("Hello, World!");

5.查询
窗口一:
select * from test.read_committed;
查询结果:

mysql> select * from test.read_committed;
+--------+---------------+
| number | text          |
+--------+---------------+
|   NULL | Hello, World! |
|   NULL | Hello, World! |
+--------+---------------+
2 rows in set (0.00 sec)

6.提交事务
窗口二:
commit;

7.查询
窗口一:
select * from test_read_committed;
查询结果:

mysql> select * from test.read_committed;
+--------+---------------+
| number | text          |
+--------+---------------+
|   NULL | Hello, World! |
|   NULL | Hello, World! |
|   NULL | Hello, World! |
+--------+---------------+
3 rows in set (0.00 sec)

未提交读

准备工作:
create database if not exists test;
drop table if exists test.read_uncommitted ;
create table test.read_uncommitted(number int, text varchar(15)) ;

1.更改隔离级别
窗口一:
set session transaction isolation level read uncommitted;

2.开启事务
窗口一:
start transaction;
窗口二:
start transaction;

3.查询
窗口一:
select * from test.read_uncommitted;
查询结果:

mysql> select * from test.read_uncommitted;
Empty set (0.00 sec)

4.插入数据
窗口二:
insert into test.read_uncommitted(text) values ("Hello, World!");

5.查询
窗口一:
select * from test.read_uncommitted;
查询结果:

mysql> select * from test.read_uncommitted;
+--------+---------------+
| number | text          |
+--------+---------------+
|   NULL | Hello, World! |
+--------+---------------+
1 row in set (0.00 sec)




ps:



归档:

1.
1.重建日志
set global general_log = off;
drop TABLE mysql.general_log;
CREATE TABLE mysql.general_log (
event_time TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
user_host MEDIUMTEXT NOT NULL,
thread_id BIGINT UNSIGNED NOT NULL,
server_id INT(10) UNSIGNED NOT NULL,
command_type VARCHAR(64) NOT NULL,
argument MEDIUMBLOB NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log';1.开启日志
show variables like 'general_log%';
show variables like 'log_output';
set global general_log = on;
show variables like 'general_log%';
set global log_output = 'table';
show variables like 'log_output';2.开启事件调度器
show variables like 'event_scheduler';
set global event_scheduler = 'off';
show variables like 'event_scheduler';
set global event_scheduler = 'on';
show variables like 'event_scheduler';
3.更改隔离级别
select @@transaction_isolation;
set session transaction isolation level read committed;
select @@transaction_isolation;
4.创建库创建表
create database test;drop table test.read_committed;
create table test.read_committed(number int, text varchar(15));5.创建定时任务use test;
drop event read_committed_read_one;
CREATE EVENT read_committed_read_one
ON SCHEDULE AT '2025-02-10 03:31:00'
DO select number from test.read_committed;use test;
drop event read_committed_read_two;
CREATE EVENT read_committed_read_two
ON SCHEDULE AT '2025-02-10 03:31:00'
DO select text from test.read_committed;use test;
drop event read_committed_insert;
CREATE EVENT read_committed_insert
ON SCHEDULE AT '2025-02-10 03:31:00'
DO INSERT INTO  test.read_committed(text) VALUES ('Hello, World!');
6.查看定时任务
show events;7.查看定时任务创建时间
select * from information_schema.events;8.关闭日志
set global general_log = 'off';
show variables like 'general_log%';9.查看日志
SELECT event_time, user_host, thread_id, server_id, command_type, CONVERT(argument USING utf8) AS argument FROM mysql.general_log;
2
#提交读
事务提交前后查询结果不同
实现流程:
1.查询
select * from test.read_committed;
查询结果:

mysql> select * from test.read_committed;
+--------+---------------+
| number | text |
+--------+---------------+
| NULL | Hello, World! |
+--------+---------------+
1 row in set (0.00 sec)

2.开启事务
start transaction;
insert into test.read_committed (text) values ("Hello, World!");
3.查询
select * from test_committed;
查询结果:

mysql> select * from test.read_committed;
+--------+---------------+
| number | text |
+--------+---------------+
| NULL | Hello, World! |
+--------+---------------+
1 row in set (0.00 sec)

4.提交
commit;
5.查询
select * from test.read_committed;
查询结果:

mysql> select * from test.read_committed;
+--------+---------------+
| number | text |
+--------+---------------+
| NULL | Hello, World! |
| NULL | Hello, World! |
+--------+---------------+
2 rows in set (0.00 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/881940.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[大模型/AI/GPT] Chatbox:大模型可视化终端应用

序 概述:Chatbox AIChatbox AI 是一款 AI 客户端应用和智能助手,支持众多先进的 AI 模型和 API,可在 Windows、MacOS、Android、iOS、Linux 和网页版上使用。User-friendly Desktop Client App for AI Models/LLMs (GPT, Claude, Gemini, Ollama...)https://github.com/Bin-…

【AI安全】大模型越狱探索

本文皆在探讨大模型越狱攻击手法,能实操落地非学术化的,所有案例用于技术分享交流,在后文中尽量会用最精简的语言来讲解 开篇点题:越狱追溯于早期 IOS,用户为了突破设备的封闭生态系统,自由操作自己的IOS,不被限制,而在大模型中,越狱同理,规避大模型的限制,执行那些…

【洛谷P1229】遍历问题

这道题好巧 遍历问题 题目描述 我们都很熟悉二叉树的前序、中序、后序遍历,在数据结构中常提出这样的问题:已知一棵二叉树的前序和中序遍历,求它的后序遍历,相应的,已知一棵二叉树的后序遍历和中序遍历序列你也能求出它的前序遍历。然而给定一棵二叉树的前序和后序遍历,你…

第二课 经济金融案例实战

目录导入数据并观察合并数据提取出标签并对标签进行处理合并训练集和测试集变量转化正确化变量属性对分类型特征进行独热编码填写数值型特征的缺失值标准化数值型特征建立模型分出训练集和测试集集成提交结果 导入数据并观察 合并数据这里可能有个问题。我们说不要让模型提前见…

STM32学习笔记【电赛历险记嵌入式学习心得】

关于STM32F103C8T6的学习笔记,除基础介绍外,包含标准库与HAL库,涉及蓝牙、电机、超声波、红外等模块,涉及GPIO、中断、定时器、IC输入捕获、ADC、DMA等基础模块,含有CubeMX学习,C语言预编译知识,含有推荐学习项目链接。前言 此篇随笔是博主在打电赛(全国大学生电子设计…

【K8S安全】浅析K8S各种未授权攻击方法

免责声明: 本篇文章仅用于技术交流,请勿利用文章内的相关技术从事非法测试,由于传播、利用本文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本文作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢…

卷积神经网络(1)初步了解

先介绍一个简单的例子 要手动实现一个简单的卷积神经网络(CNN)来判断手写数字(1-10),我们可以使用 Python 和 TensorFlow(或其他深度学习框架)。以下是一个简单的实现思路,其中包含了手动构建卷积层、池化层、全连接层等。 假设你已经有了手写数字数据集,比如 MNIST 数…

RocketMQ实战—9.营销系统代码初版

大纲 1.基于条件和画像筛选用户的业务分析和实现 2.全量用户促销活动数据模型分析以及创建操作 3.Producer和Consumer的工程代码实现 4.基于抽象工厂模式的消息推送实现 5.全量用户促销活动消息推送的流程和缺陷分析 6.全量用户促销活动推送引入MQ进行削峰 7.全量用户发优惠券业…

Qwen2.5 Max:最有可能是DeepSeek R1的平替

新年还没过,推理大模型就开始了卷了,除夕当天Qwen就发布了重磅的Qwen2.5 Max推理模型,一、Qwen2.5 Max2025年1月28日,qwen团队发布了Qwen2.5 Max,总体来说,还是很不错的。下面是摘抄他们发表的信息:We evaluate Qwen2.5-Max alongside leading models, whether propriet…

第一课 通用流程

其中\(\text{KNN}\)使用已经很少了,\(\text{SVM}\)在中小型数据集上表现很好目录了解场景和目标了解评估准则认识数据数据预处理数据清洗数据采样特征工程特征处理数值型类别型时间类文本型统计型组合特征特征选择过滤法包装法嵌入法模型融合BaggingStackingBoosting 了解场景…

DeepSeek本地化部署超简单,比装个office还简单

一、背景 最近DeepSeek太火了,以至于每位伙伴都想尝试,都想说上几句。作为一名程序员,不仅想使用这个DeeptSeek的AI工具,还是用其做更多的事情,比如本地化部署、构建自己的知识库,或者其他的应用。 本以为DeepSeek本地化部署有多难,实际上验证后很简单,任何普通人只要会…

【CTF】内存取证分析

免责声明: 此文转载自Tide安全团队原创文章,转载请声明出处!文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!一、基本概念 内存取证是指从计算机内存(RAM)中提取和分析数据的过程。当计算机运…