1. 程式人生 > 其它 >|NO.Z.00250|——————————|CloudNative|——|KuberNetes&儲存進階.V16|-------------------------------------------------------|Ceph.v10|ceph測試|PVC快照|

|NO.Z.00250|——————————|CloudNative|——|KuberNetes&儲存進階.V16|-------------------------------------------------------|Ceph.v10|ceph測試|PVC快照|

mysql在進行如插入(insert)操作的時候需不需要commit,這得看你的儲存引擎,

如果是不支援事務的引擎,如myisam,則是否commit都沒有效的。

如果是支援事務的引擎,如innodb,則得知道你事物支援是否自動提交事務(即commit)

看自己的資料庫是否是自動commit,可以使用mysql> show variables like '%autocommit%';來進行檢視,如果是OFF即不自動commit,需要手動commit操作(命令列可以直接“commit;“命令),否則是自動commit。

提交資料有三種類型:顯式提交、隱式提交及自動提交。

下面分 別說明這三種類型。

顯式提交

用 COMMIT 命令直接完成的提交為顯式提交。

隱式提交

用 SQL 命令間接完成的提交為隱式提交。這些命令是:

ALTER , AUDIT , COMMENT , CONNECT , CREATE , DISCONNECT , DROP , EXIT , GRANT , NOAUDIT , QUIT, REVOKE , RENAME 。

自動提交

若把 AUTOCOMMIT 設定為 ON ,則在插入、修改、刪除語句執行後,

系統將自動進行提交,這就是自動提交。其格式為: SQL>SET AUTOCOMMIT ON ;

COMMIT / ROLLBACK這兩個命令用的時候要小心。 COMMIT / ROLLBACK 都是用在執行 DML語句(INSERT / DELETE / UPDATE / SELECT )之後的

DML 語句,執行完之後,處理的資料,都會放在回滾段中(除了 SELECT 語句),等待使用者進行提交(COMMIT)或者回滾 (ROLLBACK),當用戶執行 COMMIT / ROLLBACK後,放在回滾段中的資料就會被刪除。SELECT 語句執行後,資料都存在共享池。提供給其他人查詢相同的資料時,直接在共享池中提取,不用再去資料庫中提取,提高了資料查詢的速度。)

所有的 DML 語句都是要顯式提交的,也就是說要在執行完DML語句之後,執行 COMMIT 。而其他的諸如 DDL 語句的,都是隱式提交的。也就是說,在執行那些非 DML 語句後,資料庫已經進行了隱式提交,例如 CREATE TABLE,在執行指令碼後,表已經建好了,並不在需要你再進行顯式提交。