8.5.3 Optimizing InnoDB Read-Only Transactions 优化InnoDB 只读事务

来源:互联网 发布:淘宝全民分享怎么设置 编辑:程序博客网 时间:2024/04/29 12:46

8.5.3 Optimizing InnoDB Read-Only Transactions 优化InnoDB 只读事务

在MySQL 5.6.4,InnoDB 能避免设置事务ID相关的开销(TRX_ID field),被称为只读事务。

一个事务ID 是需要的 对于一个事务需要执行写操作或者SELECT … FOR UPDATE操作。

减少不必要的事务IDs 会降低内部数据库结构的大小。

目前, InnoDB 检测只读事务:

1,事务是以START TRANSACTION READ ONLY 语句开始,在这种情况下,

试图对数据库进行修改(对于InnoDB, MyISAM, or other types of tables) 会产生错误,事务处于只读模式:

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

你仍旧可以在只读事务中对session级别的临时表进行改变操作,或执行locking query,

因为那些改变和lock 对其他事务是不可见的。

autocommit 设置是打开的, 这样事务是强制为一个单独的语句, 单独的语句组成事务是一个 非锁定的select 语句,

即, 一个SELECT 不使用FOR UPDATE 或者LOCK IN SHAED MODE 子句。

0 0
原创粉丝点击