事务可以看作一个整体,里面的内容要么都执行成功,要么都不成功;不可能存在部分执行成功而部分执行不成功的情况。
泽拓昆仑Klustron数据库支持MySQL连接协议和SQL语法,在事务处理的用法方面与MySQL完全兼容,包括autocommit事务,隐式事务启动和隐式事务提交,DDL原子事务等。
原文作者:CSDN博主[程序猿进阶]
关键词:MySQL、事务处理、ACID
事务可以看作一个整体,里面的内容要么都执行成功,要么都不成功;不可能存在部分执行成功而部分执行不成功的情况。
泽拓昆仑Klustron数据库支持MySQL连接协议和SQL语法,在事务处理的用法方面与MySQL完全兼容,包括autocommit事务,隐式事务启动和隐式事务提交,DDL原子事务等。
原文作者:CSDN博主[程序猿进阶]
关键词:MySQL、事务处理、ACID

DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括create、drop、alter等。 DML(Data Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括insert、delete、udpate和select等。(增添改查) DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括grant、revoke等。

(一个事务)写操作对(另一个事务)写操作的影响:锁机制保证隔离性 (一个事务)写操作对(另一个事务)读操作的影响:MVCC保证隔离性
刷脏是随机IO,因为每次修改的数据位置随机,但写redo log是追加操作,属于顺序IO。 刷脏是以数据页Page为单位的,MySQL默认页大小是16KB,一个Page上一个小修改都要整页写入;而redo log中只包含真正需要写入的部分,无效IO大大减少。

开启事务:Start Transaction:任何一条DML语句insert、update、delete执行,标志事务的开启命令:BEGIN或START TRANSACTION 提交事务:Commit Transaction:成功的结束,将所有的DML语句操作历史记录和底层硬盘数据来一次同步命令:COMMIT 回滚事务:Rollback Transaction:失败的结束,将所有的DML语句操作历史记录全部清空命令:ROLLBACK
--禁止自动提交set autocommit=0--开启自动提交set autocommit=1
select @@autocommit;set autocommit=0;--模拟账户转账begin;update account set money = money - 100 where name = 'zzx';update account set money = money + 100 where name = 'fj';--提交事务commit;--如果转账过程中出现问题,则回滚事务rollback;

-- 查看隔离级别show variables like '%isolation%’;-- 设置隔离级别/*set session transaction isolation level 级别字符串级别字符串:read uncommitted、read committed、repeatable read、serializable*/-- 设置read uncommittedset session transaction isolation level read uncommitted;-- 设置read committedset session transaction isolation level read committed;-- 设置repeatable readset session transaction isolation level repeatable read;-- 设置serializableset session transaction isolation level serializable;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




