MySQL 中的事務概念詳解

MySQL事務表是MySQL數據庫的重要概念,下面就爲你詳細介紹MySQL事務表和非事務表的區別,但願可讓您對MySQL事務表有更多的瞭解。mysql


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


好比經常使用操做中,你將A表中的100條數據導入B表,導入後刪除A表中的那部分數據,但若是中途發生意外事務表 數據庫

可保證操做正常,但非事務表可能會出現數據異常.安全


MySQL事務表有表鎖與行鎖 服務器

非事務表則只有表鎖ide

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


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變量的值。

相關文章
相關標籤/搜索