文档章节

InnoDB Read-Only Transactions_只读事务

秋风醉了
 秋风醉了
发布于 2014/11/10 16:46
字数 366
阅读 72
收藏 0
点赞 0
评论 0

InnoDB Read-Only Transactions_只读事务

官方文档:http://dev.mysql.com/doc/refman/5.6/en/innodb-performance-ro-txn.html


As of(自从) MySQL 5.6.4, InnoDB can avoid the overhead associated with setting up the transaction ID (TRX_ID field) for transactions that are known to be read-only. A transaction ID is only needed for a transaction that might perform write operations or locking reads such as SELECT ... FOR UPDATE. Eliminating(排除) unnecessary transaction IDs(不必要的transaction id) reduces(降低) the size of internal data structures that are consulted(商量,顾及) each time a query or DML(数据操纵语言) statement constructs a read view. 


Currently, InnoDB detects(发现,发觉) read-only transactions when:

  • The transaction is started with the START TRANSACTION READ ONLY statement.  In this case, attempting to make changes to the database (for InnoDB, MyISAM, or other types of tables) causes an error, and the transaction continues in read-only state: 

    ERROR 1792 (25006): Cannot execute statement in a READ ONLY transaction.

    You can still make changes to session-specific temporary(临时的) tables in a read-only transaction, or issue locking queries for them, because those changes and locks are not visible to any other transaction.

  • The autocommit setting is turned on(打开), so that the transaction is guaranteed to be a single statement, and the single statement making up the transaction is a “non-locking” SELECT statement. That is, a SELECT that does not use a FOR UPDATE or LOCK IN SHARED MODE clause. 


InnoDB默认的read only有两种方式:

  • The transaction is started with the START TRANSACTION READ ONLY statement.

  • The autocommit setting is turned on(打开). 


Thus, for a read-intensive(加强的,强烈的) application such as a report generator, you can tune (调整使协调)a sequence of InnoDB queries by grouping them inside START TRANSACTION READ ONLY and COMMIT, or by turning on the autocommit setting before running the SELECT statements, or simply by avoiding any DML statements interspersed(散开的) with the queries. 


==================END==================


© 著作权归作者所有

共有 人打赏支持
秋风醉了
粉丝 223
博文 581
码字总数 411013
作品 0
东城
程序员
一次mysql无缘无故的挂掉,使用innodb_force_recovery修复

最近遇到了一个比较奇怪的问题,在大家都在睡午觉的时候,突然手机响了起来,我为了不吵醒其他人拿起了手机看了看监控信息,我去,居然是数据库down了,这是一台运行很久的数据库服务器,当我...

legehappy ⋅ 05/23 ⋅ 0

通过查看mysql 配置参数、状态来优化你的mysql

通过查看mysql 配置参数、状态来优化你的mysql mysql的监控方法大致分为两类: 1.连接到mysql数据库内部,使用show status,show variables,flush status 来查看mysql的各种性能指标。 直接...

优惠券活动 ⋅ 05/03 ⋅ 0

逻辑备份mysqldump和物理备份xtrabackup的流程

mysqldump备份原理 备份的基本流程如下: FLUSH TABLES FLUSH TABLES WITH READ LOCK SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ START TRANSACTION WITH CONSISTENT SNAPSHO......

wdw王大为 ⋅ 05/23 ⋅ 0

MySQL基础(三)【MySQL事务与存储引擎】

3.1-数据库事务 什么是事务 一系列有序的数据库操作: 要么全部成功 要么全部回退到操作前的状态 中间状态对其他连接不可见 事务的基本操作: 基本操作 说明 start transaction 开始事务 co...

yanfeilai528 ⋅ 04/14 ⋅ 0

XtraBackup 原理与安装

阅读目录 1. XtraBackup 简介 2. XtraBackup 原理 3. XtraBackup 安装 4. XtraBackup 备份恢复 1. XtraBackup 简介 XtraBackup(PXB) 工具是 Percona 公司用 perl 语言开发的一个用于 MySQL ...

xiaocao13140 ⋅ 05/21 ⋅ 0

MYSQL主从复制搭建及切换操作(GTID与传统)

如下: MYSQL主从复制方式有默认的复制方式异步复制,5.5版本之后半同步复制,5.6版本之后新增GTID复制,包括5.7版本的多源复制。 MYSQL版本:5.7.20 操作系统版本:linux 6.7 64bit 1、异步...

rootliu ⋅ 昨天 ⋅ 0

【20180613】MySQL innodb 引擎如何解决幻读

MySQL innodb 引擎如何解决幻度 MySQL innodb 引擎事务的隔离级别有四种,默认是可重复读(REPEATABLE READ) 未提交读(READ UNCOMMITTED)。俩个不同session,一个session正在显式的开启事务进...

liuhuang9496 ⋅ 06/13 ⋅ 0

初相识|performance_schema全方位介绍

作者: 罗小波·沃趣科技高级数据库技术专家 出品: 沃趣科技 作者简介: IT从业多年,历任运维工程师、高级运维工程师、运维经理、数据库工程师,曾参与版本发布系统、轻量级监控系统、运维管...

n88lpo ⋅ 05/16 ⋅ 0

MySQL InnoDB 的多版本并发控制(MVCC)

innoDB 的多版本并发控制(MVCC) 1. MVCC定义 1.1定义 MVCC全称Mutli Version Concurreny Control,多版本并发控制,也可称之为一致性非锁定读;它通过行的多版本控制方式来读取当前执行时间...

白袜子先生 ⋅ 05/27 ⋅ 0

数据库中MyISAM与InnoDB区别

数据库中MyISAM与InnoDB区别 首页 » DIY技术区 » 数据库中MyISAM与InnoDB区别 09:57:40 MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引...

thinkyoung ⋅ 2015/09/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

收集自网络的wordpress 分页导航的代码教程(全网最全版)

wordpress 分页导航是用来切换文章的一个功能,添加了 wordpress 分页导航后,用户即可自由到达指定的页面数浏览分类文章,而这样的一个很简单功能却有很多朋友在用插件:WP-PageNavi,插件的...

Rhymo-Wu ⋅ 20分钟前 ⋅ 0

微服务 WildFly Swarm 入门

Hello World 就像前面章节中的其他框架一样,我们希望添加一些基本的 Hello-world 功能,然后在其上逐步添加更多的功能。让我们从在我们的项目中创建一个 HolaResources 开始。您可以使用您的...

woshixin ⋅ 27分钟前 ⋅ 0

Maven的安装和Eclipse的配置

1. 下载Maven 下载地址 2. 解压压缩包,放到自己习惯的硬盘中 此处我将其放到了 D:\Tools 目录下。 3. 配置环境变量 右键此电脑 -> 属性 -> 高级系统设置 -> 环境变量。 在系统变量中新建,变...

影狼 ⋅ 34分钟前 ⋅ 0

python pip使用国内镜像的方法

国内源 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 华中理工大学:http://......

良言 ⋅ 35分钟前 ⋅ 0

对于url变化的spa应该如何使用微信jssdk

使用vue单页面碰上微信jssdk config验证失败的坑。第一次成功 之后切换页面全部失败,找到了解决方法,第一次验证成功后保存验证信息 切换页面时验证信息直接拿来用,加一个wx.error() 失败时...

孙冠峰 ⋅ 39分钟前 ⋅ 0

Spring Cloud Gateway 一般集成

SCF发布,带来很多新东西,不过少了点教程,打开方式又和以前的不一样,比如这个SCG,压根就没有入门指导,所以这里写一个,以备后用。 一、集成 pom.xml <dependency> <groupI...

kut ⋅ 43分钟前 ⋅ 0

建造模式

《JAVA与模式》之建造模式

Cobbage ⋅ 57分钟前 ⋅ 0

WePY框架开发的小程序如何在微信web开发者工具中运行起来

一、首先需要安装node.js,安装步骤如下: 首先下载安装包 https://nodejs.org/en/download/ 点击下载相应的zip版本 然后将文件夹解压到任意目录 比如我这里解压到了:C:\Program Files\node...

Helios51 ⋅ 今天 ⋅ 0

使用EnumSet 代替位域(32)

1、位域(Bit field):使用or 运算将几个常量合并到一个集合中 位操作,可以有效地执行 AND 、OR 这样的位操作 但是 位域比int 常量枚举缺点更多 2、java.util 包里面的EnumSet 类是有效的替...

职业搬砖20年 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部