MySQL事务表和非事务表
查看 max_binlog_stmt_cache_size 参数解释时,有这么一句话 If nontransactional statements within a transaction require more than this many bytes of memory, the server generates an error.
那么,什么是 nontransactional statements ?
在 http://dev.mysql.com/ 查找 nontransactional关键字,查询结果第一个是 Rollback Failure for Nontransactional Tables 。
那么什么又是 Nontransactional Tables ?、
一、非事务表
Nontransactional Tables,非事务表,不支持事务的表,也就是使用MyISAM存储引擎的表。
非事务表的特点是不支持回滚,看下面的列子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
>create table no_trans(id int) ENGINE=MyiSAM;
>start transaction;
>insert into no_trans values(1);
>select * from no_trans;
+------+
| id |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
>rollback;
Query OK, 0 rows affected, 1 warning (0.00 sec)
>show warnings;
+---------+------+---------------------------------------------------------------+
| Level | Code | Message |
+---------+------+---------------------------------------------------------------+
| Warning | 1196 | Some non-transactional changed tables couldn't be rolled back |
+---------+------+---------------------------------------------------------------+
1 row in set (0.00 sec)
>select * from no_trans;
+------+
| id |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
|
可以看到,非事务表回滚抛出警告,显示非事务表不支持回滚。
二、事务表
与非事务表对象的是事务表,比如使用InnoDB的表,支持回滚操作。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
>create table trans(id int);
>start transaction;
>insert into trans values(1);
>select * from trans;
+------+
| id |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
>rollback;
Query OK, 0 rows affected (0.00 sec)
>select * from trans;
Empty set (0.00 sec)
|
可以得出,nontransactional statements的意思是操作非事务表的语句。
三、相关参数
max_binlog_stmt_cache_size 该参数影响的是非事务表,如MyISAM,该参数不够时,则提示需要更多的空间。
max_binlog_cache_size 该参数影响的是事务表,如InnoDB,该参数不够时,则提示需要更多的空间。
MySQL事务表和非事务表的更多相关文章
- mysql 开发基础系列21 事务控制和锁定语句(下)
1. 隐含的执行unlock tables 如果在锁表期间,用start transaction命令来开始一个新事务,会造成一个隐含的unlock tables 被执行,如下所示: 会话1 会话2 ...
- ORA-01552 非系统表空间不能使用系统回滚段处理
今天新搭建了一个10g的测试数据库,运行都很正常,但是在打开autotrace功能后执行语句,报错 SQL> set autotrace on SQL> select username,s ...
- Spring的事务管理和数据库事务相关知识
1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:取钱. 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱:然后ATM出1000元钱. ...
- spring框架学习(六)AOP事务及spring管理事务方式之Template模板
概念 1.事务 1)事务特性:ACID 原子性 :强调事务的不可分割. 一致性 :事务的执行的前后数据的完整性保持一致. 隔离性 :一个事务执行的过程中,不应该受到其他事务的干扰. 持久性 :事务一旦 ...
- spring 中常用的两种事务配置方式以及事务的传播性、隔离级别
一.注解式事务 1.注解式事务在平时的开发中使用的挺多,工作的两个公司中看到很多项目使用了这种方式,下面看看具体的配置demo. 2.事务配置实例 (1).spring+mybatis 事务配置 &l ...
- [数据库事务与锁]详解五: MySQL中的行级锁,表级锁,页级锁
注明: 本文转载自http://www.hollischuang.com/archives/914 在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的 ...
- mySQL多表查询与事务
一.范式 1. 什么是范式 1.1 什么是范式 范式:设置一个科学的.规范的数据库,需要满足的一些规则 1.2 有哪些范式 共有:6大范式 第1范式:1NF 满足最基本的要求 第2范式:2NF 在1N ...
- MySQL多表查询、事务、DCL:内含mysql如果忘记密码解决方案
MySQL多表查询.事务.DCL 多表查询 * 查询语法: select 列名列表 from 表名列表 where.... * 准备sql # 创建部门表 CREATE TABLE dept( id ...
- MySQL 多表查询与事务的操作
表连接查询 什么是多表查询 # 数据准备 # 多表查询的作用 * 比如:我们想查询孙悟空的名字和他所在的部门的名字,则需要使用多表查询 # 如果一条 SQL 语句查询多张表,因为查询结果在多张不同的表 ...
随机推荐
- python使用tkinter无法给顶层窗体的输入框设定默认值
这几天某同学遇到了一个棘手的问题,困扰了很久.今天终于解决了,我来记录一下坑. 情景:python 使用tkinter为第二层窗体(顶层窗体)中的一个输入框设定默认值时,总是无法设置,而且对输入框获取 ...
- SAP云平台里的三叉戟应用
大家第一次看到SAP MTA这个词组,会联想到什么? Jerry第一次看到的时候,联想到的是那一个个足坛著名的三叉戟攻击组合. 海皇波塞冬(Poseidon),奥林匹斯十二神中地位仅次于宙斯的大神,海 ...
- jenkens 安装是git版本过低 升级
Jenkins本机默认使用"yum install -y git" 安装的git版本比较低,应该自行安装更高版本的git. 查看jenkins本机的git版本 1 2 [root@ ...
- MySQL Index--关联条件列索引缺失导致执行计划性能不佳
某系统反馈慢SQL影响生产,查看SLOW LOG发现下面慢SQL: SELECT COUNT(DISTINCT m.batch_no) FROM ob_relation r INNER JOIN ob ...
- H3C 802.11n
- python之文件的相关操作
一..文件操作的函数 open("文件名(路径)" ,mode = "模式" , encoding="字符集") 注:文件路径: (1)绝对 ...
- mysqldump 全备
[root@db01 b]#mysqldump -uroot -poldboy123 -A -R --triggers --master-data=2 --single-transaction | g ...
- Jenkins 插件:Job Configuration History(记录job的历史更新记录)
1. 添加插件 添加完成后,Jenkins,左下,多一个菜单栏 .可以查看,job的更新记录,见下图 . 如上,End再也不用担心,有同学乱改Job ,却不知道哪里被改的情况了. 注:1)这个 ...
- 如何通过cmd获取到域名下的ip地址?例如获取百度的域名
百度首页的IP地址为[119.75.217.109] 你可以通过电脑本机进行查询,查询步骤如下: 1.点击[开始]--->>[运行],输入[cmd]: 按键盘上的[Win键]+[R键],调 ...
- machine learning (2)-linear regression with one variable
machine learning- linear regression with one variable(2) Linear regression with one variable = univa ...