1、事务:由一条或者多条SQL语句组成的工作单元,这些工作单元的内容,或者同时成功,或者同时失败
2、mySQL中如果没有显示开启事务,那么默认自动开启,每执行一条SQL语句,自动提交事务
-通过show variables like'%auto%'查看事务是否自动提交
-执行set autocommit = 'off' 关闭自动提交模式
3、事务的ACID特性
-原子性(Atomicity):整个事务中的所有操作,必须作为一个单元同时成功或者同时失败
-一致性(Consistency):在事务开始和结束后,数据库的数据都应保持一致
-隔离性(Isolation):多个事物之间,相互隔离;一个事务不会影响其它事务的运行
-持久性(Durability):在事务完成之后,该事物对数据库所做的更改将持续地保存在数据库中,
并不会被回滚
4、事务的隔离级别:决定了事务之间可见的级别
-读未提交(READ UNCOMMITED):允许一个事务看到其它事务未提交的修改
-读已提交(READ COMMITED):允许一个事务只能看到其它事务已经提交的修改,未提交的不可见 Oralce默认
-可重复读(REPEATABLE READ):确保如果在一个事务中执行两次两桶的select语句,都能得到相同的结果,不管
其它事务是否对这些数据进行了修改 mySQL默认
-序列化读(SERIALAZABLE):将一个事务与其它事务完全隔离
-可通过select@@tx_isolation查看当前窗口的隔离级别 select@@session.tx_isolation
-可通过set global transaction isolaction level read uncommitted;设置隔离级别
-prompt 提示名称:修改提示名
5、当多个客户端并发的访问同一个表时,可能出现的问题
-脏读取:一个事务开始读取了某行数据,但是另一个事务已经更新了此数据但是没有能够及时提交
-不可重复读:在同一个事务中,同一个操作对同一个数据的前后两次读取产生了不同的结果
-幻读:在同一个事务中,以前没有的行,由于其它的事务提交而出现新的行
mysql数据库隔离级别应该设置可重复读还是读已提交 mysql隔离级别产生的问题
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
MySQL 可重复读隔离级别与幻读
在MySQL可重复读的隔离级别下,能很大程度上避免幻读,而不能完全避免。场景复现环境信息:MySQL版本:5.7.23-log隔
mysql 事务 可重复读 幻读 隔离级别 -
Java pgsql 插入分区表
目录一、前言二、版本详情二、创建分区表三、新增分区 3.1、新增分区 3.2、批量新增分区四、删除分区 4.1、删除分区 4.2、批量删除分区五
Java pgsql 插入分区表 postgresql 数据库 sql 分区表