程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL事務表和非事務表的區別

MySQL事務表和非事務表的區別

編輯:MySQL綜合教程

MySQL事務表是MySQL數據庫的重要概念,下面就為你詳細介紹MySQL事務表和非事務表的區別,希望可以讓您對MySQL事務表有更多的了解。

MySQL事務表支持將批處理當做一個完整的任務統一提交或回滾,即對包含在事務中的多條語句要麼全執行,要麼全部不執行。非事務表則不支持此種操作,批處理中的語句如果遇到錯誤,在錯誤前的語句執行成功,之後的則不執行。

比如常用操作中,你將A表中的100條數據導入B表,導入後刪除A表中的那部分數據,但如果中途發生意外事務表
可保證操作正常,但非事務表可能會出現數據異常.

MySQL事務表有表鎖與行鎖
非事務表則只有表鎖

可使用下述語句之一檢查表的標類型:

SHOW TABLE STATUS LIKE 'tbl_name';
SHOW CREATE TABLE tbl_name;

事務安全表(TST) 比起非事務安全表 (NTST)有幾大優勢:

·更安全。即使MySQL崩潰或遇到硬件問題,要麼自動恢復,要麼從備份加事務日志恢復,你可以取回數據。

·你可以合並許多語句,並用COMMIT語句同時接受它們全部如果autocommit被禁止掉)。

·你可以執行ROLLBACK來忽略你的改變如果autocommit被禁止掉)。

·如果更新失敗,你的所有改變都變回原來。用非事務安全表,所有發生的改變都是永久的)。

·事務安全存儲引擎可以給那些當前用讀得到許多更新的表提供更好的部署。

非事務安全表自身有幾個優點,因為沒有事務開支,所有優點都能出現:

·更快

·需要更少的磁盤空間

·執行更新需要更少的內存

使用下述語句,可檢查mysqld服務器支持的存儲引擎:

SHOW ENGINES;

也可以使用下述語句,檢查與你感興趣的存儲引擎有關的變量值:

SHOW VARIABLES LIKE 'have_%';

例如,要想確定InnoDB存儲引擎是否可用,可檢查have_innodb變量的值。

教您如何實現MySQL多表插入

MySQL分區表對於函數的限制

MySQL行級鎖的優點和缺點

帶您了解MySQL單表大小的限制

實例講解MySQL連接查詢

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved