MySQL事务和锁05

  官网地址:MySQL :: MySQL 5.7 Reference Manual :: 13.3.6 SET TRANSACTION Statement

欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.

Mysql5.7参考手册  /  ...  /  集事务语句

13.3.6设定交易报表

SET [GLOBAL | SESSION] TRANSACTIONtransaction_characteristic [, transaction_characteristic] ...transaction_characteristic: {ISOLATION LEVEL level| access_mode
}level: {REPEATABLE READ| READ COMMITTED| READ UNCOMMITTED| SERIALIZABLE
}access_mode: {READ WRITE| READ ONLY
}

此语句指定 交易 特点。它需要一个由逗号分隔的一个或多个特征值的列表。每个特征值设置事务 隔离水平 或者进入模式。隔离级别用于InnoDB 表格。访问模式指定事务是否以读写模式运行。

另外,SET TRANSACTION 可包括一个可选的GLOBAL 或 SESSION 表明声明范围的关键词。

  • 交易隔离级别

  • 交易存取模式

  • 交易特征范围

交易隔离级别

要设置事务隔离级别,请使用 条款。不允许指定多个 同样的条款 声明。 ISOLATION LEVEL levelISOLATION LEVELSET TRANSACTION

默认隔离级别是 REPEATABLE READ .其他认可值READ COMMITTED ,READ UNCOMMITTED ,以及 SERIALIZABLE .有关这些隔离级别的信息,请参阅 14.7.2.1节,"事务隔离级别" .

交易存取模式

要设置事务访问模式,请使用READ WRITE 或READ ONLY 条款。不允许在同一场合指定多个存取模式条款SET TRANSACTION 声明。

默认情况下,事务以读写方式进行,允许对事务中使用的表进行读写。此模式可明确指定使用 SET TRANSACTION 有进入模式的READ WRITE .

如果事务访问模式设置为READ ONLY )禁止更改表格。这可能使存储引擎能够在不允许写入时进行性能改进。

在只读模式下,仍然可以更改使用TEMPORARY 使用DML语句的关键词。不允许对DDL语句进行更改,就像对永久表一样。

READ WRITE 和READ ONLY 还可为使用 START TRANSACTION 声明。

交易特征范围

您可以为当前会话或下一个事务设置全局事务特性:

  • 与…GLOBAL 关键词:

    • 该声明在全球适用于以后的所有会议。

    • 现有会议不受影响。

  • 与…SESSION 关键词:

    • 此语句适用于在本届会议期间执行的所有后续事务。

    • 此语句允许在事务中进行,但不影响当前正在进行的事务。

    • 如果在事务之间执行,则此语句将覆盖设置指定特性的下一个事务值的任何先前语句。

  • 没有SESSION 或 GLOBAL 关键词:

    • 语句只适用于在会话中执行的下一个事务。

    • 后续事务恢复到使用指定特征的会话值。

    • 在下列交易中不允许有此说明:

      mysql> START TRANSACTION;
      Query OK, 0 rows affected (0.02 sec)mysql> SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
      ERROR 1568 (25001): Transaction characteristics can't be changed
      while a transaction is in progress

改变全局交易特性需要 SUPER 特权。任何会话都可以自由地更改其会话特性(即使在事务的中间),或其下一个事务的特性(在事务开始之前)。

要在服务器启动时设置全局隔离级别,请使用 选项在命令行或一个选项文件中.价值观 对于这个选项,使用破折号而不是空格,所以允许值是 , , ,或 . --transaction-isolation=levellevelREAD-UNCOMMITTEDREAD-COMMITTEDREPEATABLE-READSERIALIZABLE

同样,要在服务器启动时设置全局事务访问模式,请使用 --transaction-read-only 选择。默认情况是OFF (读/写方式)但是值可以设置为ON 只为一种方式。

例如,将隔离级别设置为 REPEATABLE READ 以及进入READ WRITE ,使用这些线[mysqld] 一个选项文件的部分:

[mysqld]
transaction-isolation = REPEATABLE-READ
transaction-read-only = OFF

在运行时,全局、会话和下事务范围级别的特性可以使用 SET TRANSACTION 声明,如前所述。也可以直接使用 SET 将价值分配给 transaction_isolation 和 transaction_read_only 系统变量:

  • SET TRANSACTION 可选择的许可证GLOBAL 和 SESSION 在不同范围级别设置事务特性的关键词。

  • … SET 分配价值给 transaction_isolation 和 transaction_read_only 系统变量具有在不同的范围级别设置这些变量的语法。

下表显示每个系统设置的特征范围级别SET TRANSACTION 以及可变分配语法。

表13.6对事务特性的一套事务语法

语法的受影响特征范围
SET GLOBAL TRANSACTION transaction_characteristic全球的
SET SESSION TRANSACTION transaction_characteristic会议
SET TRANSACTION transaction_characteristic下一次交易
 

关于事务特性的一套语法

语法的受影响特征范围
SET GLOBAL var_name = value全球的
SET @@GLOBAL.var_name = value全球的
SET SESSION var_name = value会议
SET @@SESSION.var_name = value会议
SET var_name = value会议
SET @@var_name = value下一次交易
 

可以在运行时检查事务特性的全局值和会话值:

<span style="background-color:#ffffff"><span style="color:#555555"><span style="background-color:#f8f8f8"><span style="color:#000000"><code class="language-sql"><span style="color:#0077aa">SELECT</span> <span style="background-color:inherit"><span style="color:#ee9900"><strong><em>@@GLOBAL.transaction_isolation</em></strong></span></span><span style="color:#999999">,</span> <span style="background-color:inherit"><span style="color:#ee9900"><strong><em>@@GLOBAL.transaction_read_only</em></strong></span></span><span style="color:#999999">;</span>
<span style="color:#0077aa">SELECT</span> <span style="background-color:inherit"><span style="color:#ee9900"><strong><em>@@SESSION.transaction_isolation</em></strong></span></span><span style="color:#999999">,</span> <span style="background-color:inherit"><span style="color:#ee9900"><strong><em>@@SESSION.transaction_read_only</em></strong></span></span><span style="color:#999999">;</span></code></span></span></span></span>

在mysql5.7.20之前,使用 tx_isolation 和 tx_read_only 与其说 transaction_isolation 和 transaction_read_only .

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

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

相关文章

当包容结构体遇见灵活的内存管理

&#x1f308;个人主页&#xff1a;小田爱学编程 &#x1f525; 系列专栏&#xff1a;c语言从基础到进阶 &#x1f3c6;&#x1f3c6;关注博主&#xff0c;随时获取更多关于c语言的优质内容&#xff01;&#x1f3c6;&#x1f3c6; &#x1f600;欢迎来到小田代码世界~ &#x…

Python算法题集_和为K的子数组

本文为Python算法题集之一的代码示例 题目560&#xff1a;和为K的子数组 说明&#xff1a;给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1&#xff1a; 输入&#xff1a;nu…

Revit2018复现《AUTODESK REVIT二次开发基础教程》代码17

using Autodesk.Revit.Attributes; using Autodesk.Revit.DB; using Autodesk.Revit.UI; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LearnTime { //必备写法 [Transaction(Tr…

JavaScript DOM属性和方法之event事件对象

event对象代表事件的状态&#xff0c;比如事件在其中发生的元素&#xff0c;键盘按键的状态、鼠标的位置、鼠标按钮的状态&#xff0c;事件通常与函数结合使用&#xff0c;函数不会在事件发生前被执行&#xff0c;只有当事件被触发的时候才会执行函数。 一、句柄事件 HTML5的…

【代码能力提升 | 代码阅读学习】分析 VoxelNet 的 主干

文章目录 前言代码分析VoxelNet model2.数据处理2.1单个样本处理2.2处理成batch 最后&#xff0c;附上我一步步调试代码&#xff0c;到3D-conv 前言 代码来自&#xff1a;https://github.com/skyhehe123/VoxelNet-pytorch 其中 测试数据来自&#xff1a;https://github.com/ga…

Go语言标准库log日志

Go语言内置的log包实现了简单的日志服务。 使用Logger log包定义了Logger类型&#xff0c;该类型提供了一些格式化输出的方法。本包也提供了一个预定义的“标准”logger&#xff0c;可以通过调用函数Print系列(Print|Printf|Println&#xff09;、Fatal系列&#xff08;Fatal…

Mysql查询优化从入门到入土详解含示例(值得珍藏)

点击下载《Mysql查询优化从入门到入土详解含示例&#xff08;值得珍藏&#xff09;》 1. 前言 随着互联网的快速发展&#xff0c;数据库已经成为应用程序的重要组成部分。MySQL作为最流行的关系型数据库管理系统之一&#xff0c;广泛应用于各种场景。然而&#xff0c;随着数据…

春节寄快递贵?想要便宜寄快递?那是你没找到寄快递便宜的渠道!

春节将至&#xff0c;公司会发放一大批的年货礼品给员工们&#xff0c;来聊表这一年来的勤恳工作的心意。但是想要拿走这么多的年货&#xff0c;可不是一件容易的事情啊&#xff0c;这时候我们可以通过邮寄的方式把东西邮寄走&#xff0c;是不是省了很多事呢&#xff0c;不仅回…

如何过有「松弛感」的生活?

最近网上有一个词很流行&#xff0c;叫做「松弛感」。最早的出处似乎是这么一条微博&#xff1a;博主见到一家人出门旅游&#xff0c;行李全部被退回&#xff0c;空手抵达目的地&#xff0c;竟然没人紧张和生气&#xff0c;而是重新安排好行李后继续开心聊天&#xff0c;全程非…

Redis -- 前置知识

目录 简要 分布式系统 负载均衡 引入缓存 数据库分表 微服务 小结 简要 redis是存储数据在内存中, 定义变量就是在内存中, 但是redis是在分布式系统中, 才能真正发挥威力, 如果只是单机程序, 那么直接通过变量来存储数据的方式将是最优的选择. …

Unity 解释器模式(实例详解)

文章目录 示例1&#xff1a;基础解释器结构示例2&#xff1a;小于表达式&#xff08;LessThanExpression&#xff09;示例3&#xff1a;逻辑或表达式&#xff08;OrExpression&#xff09;示例4&#xff1a;逻辑非表达式&#xff08;NotExpression&#xff09;示例5&#xff1a…

DeepLearningSystem:开启深度学习之旅的全方位指南,一款深度学习系统性开源课程项目!

在当今这个数据驱动的时代&#xff0c;深度学习技术 已经成为了科技领域的一个重要分支。 对于有志于掌握这一技术的专业人士和学生来说&#xff0c;有一个项目值得特别关注——由chenzomi12开发的“深度学习系统”课程。 Star&#xff1a;6.2k GitHub&#xff1a;https://gi…

美睫师睫毛嫁接零基础学习,日式美睫与开花嫁接实战教学

一、教程描述 大家都说女人的钱好挣&#xff0c;这是因为每个女人在每年&#xff0c;都要花很多钱来打扮自己。本套教程是关于日式美睫和开花嫁接的&#xff0c;从零基础学习到店铺经营都有涉及&#xff0c;就做美睫和睫毛嫁接这两项业务&#xff0c;月收入万元以上应该问题不…

系统引导程序 Boot Loader——学习笔记

基于嵌入式Linux 的完整系统软件由三个部分组成&#xff1a;系统引导程序、Linux 操作系统内核和文件系统。 系统引导程序 Boot Loader 是系统加电后运行的第一段软件代码&#xff0c;它的作用是加载操作系统或者其他程序到内存中&#xff0c;并将控制权交给它们。 Boot Load…

JMeter性能测试实战

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

C语言——O / 动态内存管理

一、为什么要有动态内存分配 我们已经掌握的内存开辟⽅式有&#xff1a; int val 20;//在栈空间上开辟四个字节 char arr[10] {0};//在栈空间上开辟10个字节的连续空间 但是上述的开辟空间的⽅式有两个特点&#xff1a; • 空间开辟⼤⼩是固定的。 • 数组在申明的时候&am…

Flutter Web持久化存储SharedPreferences原理

前言 在Flutter中&#xff0c;类似于Android&#xff0c;SharedPreferences 是一种用于持久化存储键值对数据的机制 实现原理 对于移动平台&#xff08;如Android和iOS&#xff09;&#xff0c;SharedPreferences 利用了各自平台的持久化存储能力。在Android上&#xff0c;它…

前端经典面试题js去重方法都有哪些

使用 Set&#xff1a; Set 是 ES6 中引入的一种数据结构&#xff0c;它只允许存储唯一的值&#xff0c;可以利用这一特性来实现数组去重。 const array [1, 2, 2, 3, 4, 4, 5]; const uniqueArray [...new Set(array)]; 使用 indexOf 或 includes 方法&#xff1a; 遍历原数…

RabbitMQ之死信交换机

前言 消息队列是分布式系统中常用的组件&#xff0c;用于异步通信、解耦和提高系统可靠性。然而&#xff0c;在实际应用中&#xff0c;难免会遇到一些异常情况&#xff0c;例如消息处理失败、超时等。为了更好地处理这些异常情况&#xff0c;死信交换机&#xff08;Dead Lette…

数据双向绑定v-modal

v-model v-model就实现了双向数据绑定&#xff0c;实际上它就是通过Vue提供的事件机制。即在子组件通过$emit()触发一个事件&#xff0c;在父组件使用v-on来监听对应的事件并修改相应的数据。 input的v-model就是通过<input :value"value" input"input"…