日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

mysql+永久+关闭提交,MySQL学习【第十一篇存储引擎之事务解释】

發布時間:2025/3/20 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql+永久+关闭提交,MySQL学习【第十一篇存储引擎之事务解释】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.innodb的核心特點------事務

1.什么是事務

在一組數據操作執行步驟,這些步驟被視為一個單元,主要針對dml語句(update、delete、insert)

2.事務ACID特性

Atomic(原子性)

所有語句作為一個單元全部成功執行或全部取消。

Consistent(一致性)

如果數據庫在事務開始時處于一致狀態,則在執行該。?事務期間將保留一致狀態。

Isolated(隔離性)

事務之間不相互影響。

Durable(持久性)

事務成功完成后,所做的所有更改都會準確地記錄在?數據庫中。所做的更改不會丟失。

3.事務的控制語句

START TRANSACTION(或 BEGIN):顯式開始一個新事務

SAVEPOINT:分配事務過程中的一個位置,以供將來引用

COMMIT:永久記錄當前事務所做的更改

ROLLBACK:取消當前事務所做的更改

ROLLBACK TO SAVEPOINT:取消在 savepoint 之后執行的更改

RELEASE SAVEPOINT:刪除 savepoint 標識符

SET AUTOCOMMIT:為當前連接禁用或啟用默認 autocommit 模式

4.事務演示

成功事務

mysql>begin;

mysql> insert into stu(id,name,sex,money) values(1,'zhang3','m',100), (2,'zhang4','m',110);

mysql>commit;

事務回滾

mysql>begin;

mysql> update stu set name='zhang3';

mysql> delete fromstu;

mysql> rollback;

6.事務自動提交

#查看自動提交

mysql> show variables like 'autocommit';

#臨時關閉

mysql> set autocommit=0;

#永久關閉

[root@db01 world]# vim/etc/my.cnf

[mysqld]

autocommit=0

5.事務隱式提交情況

a)現在版本在開啟事務時,不需要手工begin,只要你輸入的是DML語句,就會自動開啟事務。

b)有些情況下事務會被隱式提交

如下:

在事務運行期間,手工執行begin的時候會自動提交上個事務

在事務運行期間,加入DDL、DCL操作會自動提交上個事務

在事務運行期間,執行鎖定語句(lock tables、unlock tables)

load data infile

select for update

在autocommit=1的時候

7.事務日志redo基本功能

a( redo是什么

redo,顧名思義“重做日志”,是事務日志的一種。

b( 作用是什么

在事務ACID過程中,實現的是“D”持久化的作用。

特性:WAL(Write Ahead Log)日志優先寫

REDO:記錄的是,內存數據頁的變化過程

8.redo的工作過程

執行步驟

update t1 set num=2 where num=1;

a)首先將t1表中num=1的行所在數據頁加載到內存中buffer page

b)MySQL實例在內存中將num=1的數據頁改成num=2

c)num=1變成num=2的變化過程會記錄到,redo內存區域,也就是redo buffer page中

提交事務執行步驟

commit;

a)當敲下commit命令的瞬間,MySQL會將redo buffer page寫入磁盤區域redo log

b)當寫入成功之后,commit返回ok

9.事務日志undo

a( ? ?undo 是什么?

undo,顧名思義“回滾日志”,是事務日志的一種。

b( ? ?作用是什么?

在事務ACID過程中,實現的是“A”原子性的作用。當然CI的特性也和undo有關

10.redo和undo的存儲位置

#redo位置

[root@db01 data]# ll/application/mysql/data/

-rw-rw---- 1 mysql mysql 50331648 Aug 15 06:34ib_logfile0-rw-rw---- 1 mysql mysql 50331648 Mar 6 2017ib_logfile1

#undo位置

[root@db01 data]# ll/application/mysql/data/

-rw-rw---- 1 mysql mysql 79691776 Aug 15 06:34ibdata1-rw-rw---- 1 mysql mysql 79691776 Aug 15 06:34 ibdata2

總結

以上是生活随笔為你收集整理的mysql+永久+关闭提交,MySQL学习【第十一篇存储引擎之事务解释】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。