Mysql 中的事务
来源:互联网 发布:手机淘宝排行榜模版 编辑:程序博客网 时间:2024/06/06 04:02
Mysql 提供两种事务性的存储引擎:InnoDB和NDB Cluster 。另外还有一些第三方的存储引擎也只事务,比较知名的包括XtraDB和PBXT。后面讲详细讨论他们各自的一些特点。
自动提交
Mysql 采用的是默认自动提交(autocommit)模式,也就是说,如果不是显示的开始一个事务,则每个查询都当被一个事务执行提交作业。在当前的连接中,可以通过设置atuocommit 变量来启动或者禁用自动提交模式.
mysql> show variables like 'autocommit';+---------------+-------+| Variable_name | Value |+---------------+-------+| autocommit | ON |+---------------+-------+1 row in set (0.00 sec)mysql> set autocommit = 1;
1或者on 表示启动,0或者off 表示禁用。当autocommit=0 时,所有的查询都是在一个事务中,直到显示的commit提交或者rellback回滚,该事务结束,同时又开始了另外一个新的事务。修改autocommit 对非事务类型的表,如MyISAM或者内存表,不会有影响。对这些表来说,没有commit或者rollback的概念,也可以说是一种一直处于autocommit 启动的模式。
另外还有一些命令在执行之前会强制执行commit 提交当前的事务,典型的例子,在数据定于语言(DDL)中,如果会导致大量的数据改变操作,如alert Table ,就是如此。另外还有lock tables 等其他语句也会导致同样的结果,如果有需要请检查对应的版本的官方文档来确认所有可能导致自动提交的语句列表。
Mysql 可以通过执行set transaction inolation level 命令来设置隔离级别。最新的隔离级别也会在也在下一个事务中开始生效。可以在配置文件中设置整个数据库的的隔离级别,也可以改变当前回话的隔离级别:
mysql> set session transaction isolation level read committed;Query OK, 0 rows affected (0.00 sec)
Mysql 能够识别所有的四个ansi 隔离级别,InnoDb 引擎也能支持所有的各级级别。
改变事务级别 具体如下
SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}
可以使用以下语句查询当前是事务级别
SELECT @@global.tx_isolation; SELECT @@session.tx_isolation; SELECT @@tx_isolation;
0 0
- Mysql 中的事务
- MySQL中的事务
- MySql中的事务
- MySQL中的事务
- 漫谈MySql中的事务
- 说说MySQL中的事务
- MySQL中的XA事务
- MySQL中的事务初探
- mysql中的事务总结
- mysql数据库中的事务
- Mysql中的事务
- mysql中的事务
- 漫谈MySql中的事务
- Mysql中的事务
- mysql 中的事务
- MySQL中的事务
- MYSQL中的事务
- 了解MySql中的 事务
- php文件上传
- <img src="">标签中的src 找不到 Servlet的路径
- 黑马程序员--转换流、打印流、序列化流、Properties类
- Android UI设计:TextView与EditText
- 自定义字符输入流的包装类,通过这个包装类对底层字符输入流进行包装,让程序通过这个包装类读取某个文本文件(例如,一个java源文件)时,能够在读取的每行前面都加上有行号和冒号。
- Mysql 中的事务
- 虚方法
- 数字视频广播字幕系统(第四章)
- Blob分析
- android 点击拨打电话发短信
- JSP内置对象和属性
- C/C++易错难点笔记02
- 实现带清除效果的EditText
- Neo4j入门教程_1