日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

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

一.innodb的核心特點(diǎn)------事務(wù)

1.什么是事務(wù)

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

2.事務(wù)ACID特性

Atomic(原子性)

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

Consistent(一致性)

如果數(shù)據(jù)庫在事務(wù)開始時處于一致狀態(tài),則在執(zhí)行該。?事務(wù)期間將保留一致狀態(tài)。

Isolated(隔離性)

事務(wù)之間不相互影響。

Durable(持久性)

事務(wù)成功完成后,所做的所有更改都會準(zhǔn)確地記錄在?數(shù)據(jù)庫中。所做的更改不會丟失。

3.事務(wù)的控制語句

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

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

COMMIT:永久記錄當(dāng)前事務(wù)所做的更改

ROLLBACK:取消當(dāng)前事務(wù)所做的更改

ROLLBACK TO SAVEPOINT:取消在 savepoint 之后執(zhí)行的更改

RELEASE SAVEPOINT:刪除 savepoint 標(biāo)識符

SET AUTOCOMMIT:為當(dāng)前連接禁用或啟用默認(rèn) autocommit 模式

4.事務(wù)演示

成功事務(wù)

mysql>begin;

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

mysql>commit;

事務(wù)回滾

mysql>begin;

mysql> update stu set name='zhang3';

mysql> delete fromstu;

mysql> rollback;

6.事務(wù)自動提交

#查看自動提交

mysql> show variables like 'autocommit';

#臨時關(guān)閉

mysql> set autocommit=0;

#永久關(guān)閉

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

[mysqld]

autocommit=0

5.事務(wù)隱式提交情況

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

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

如下:

在事務(wù)運(yùn)行期間,手工執(zhí)行begin的時候會自動提交上個事務(wù)

在事務(wù)運(yùn)行期間,加入DDL、DCL操作會自動提交上個事務(wù)

在事務(wù)運(yùn)行期間,執(zhí)行鎖定語句(lock tables、unlock tables)

load data infile

select for update

在autocommit=1的時候

7.事務(wù)日志redo基本功能

a( redo是什么

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

b( 作用是什么

在事務(wù)ACID過程中,實(shí)現(xiàn)的是“D”持久化的作用。

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

REDO:記錄的是,內(nèi)存數(shù)據(jù)頁的變化過程

8.redo的工作過程

執(zhí)行步驟

update t1 set num=2 where num=1;

a)首先將t1表中num=1的行所在數(shù)據(jù)頁加載到內(nèi)存中buffer page

b)MySQL實(shí)例在內(nèi)存中將num=1的數(shù)據(jù)頁改成num=2

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

提交事務(wù)執(zhí)行步驟

commit;

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

b)當(dāng)寫入成功之后,commit返回ok

9.事務(wù)日志undo

a( ? ?undo 是什么?

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

b( ? ?作用是什么?

在事務(wù)ACID過程中,實(shí)現(xiàn)的是“A”原子性的作用。當(dāng)然CI的特性也和undo有關(guān)

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

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。