mysql事務處理 儲存引擎

2021-08-28 01:43:35 字數 969 閱讀 4119

一,什麼是事務

在資料庫系統的世界裡,事務(transaction)是指把多個資料庫操作當做乙個整體(塊)來對待。資料庫系統確保操作要麼全都正確地得到執行,要麼全都不執行,即使在事務過程中出現了停電、計算機崩潰或其他災難事件也是如此。這樣一來,就不會發生從銀行賬戶匯出了一筆錢款、但對方卻因為系統出了某種問題而未能收到這筆錢款的事情了。

事務機制還可以讓程式設計師安全、及時地中止一組命令的執行(並把資料庫恢復到這組命令開始執行前的狀態)。有了事務機制,程式設計師在軟體開發過程中需要考慮和解決的問題將大為減少。

mysql對事務的支援由來已久,只是有不少人不了解這一事實而已。要知道,mysql能夠以好幾種格式來儲存資料表。mysql資料庫系統在預設的情況下會把資料表儲存為myisam格式,這種格式不支援事務。但有幾種格式是支援事務的,它們當中最為流行的是innodb格式

二,myisam和innodb儲存引擎的區別

myisam屬於非事務安全型,innodb和bdb屬於事務安全型,在使用上,包括建立表,insert,select等等操作上有沒有什麼區別。但是myisam引擎速度比較快、比較簡單、而innodb支援外來鍵、其速度相對就慢了。

myisam 型別的表強調的是效能,其執行數度比innodb型別更快,但是不提供事務支援,而innodb提供事務支援已經外部鍵等高階資料庫功能。這樣就可以根據資料表不同的用處是用不同的儲存型別。另外,myisam型別的二進位制資料檔案可以在不同作業系統中遷移。也就是可以直接從windows系統拷貝到linux系統中使用。所以我一般都是使用myisam,因為這次用的也不是很深入的。如果把這型別從myisam轉成innodb會不會有問題、但是全文索引失效.

使用兩種的選擇:如果你的資料執行大量的insert或update,出於效能方面的考慮,應該使用innodb表。如果執行大量的 select,myisam是更好的選擇。若需要使用事務處理,但是原來的資料表使用的是myisam,就需要改為bdb或者innodb,這樣基於myisam的程式,將型別改為innodb後,其程式不用改動。

事務處理 MySQL儲存引擎

事務必須服從iso iec所制定的acid原則。acid是原子性 atomicity 一致性 consistency 隔離性 isolation 和永續性 durability 的縮寫。一致性 事物失敗,資料恢復到事物執行前。永續性 事物執行成功,對資料的更改,在系統中是永久的。不會過幾天自動變了。...

MySQL事務處理

start transaction,commit和rollback語法 start transaction begin work commit work and no chain no release rollback work and no chain no release set autocom...

mysql事務處理

mysql的事務處理主要有兩種方法 1.用begin,rollback,commit來實現 begin開始乙個事務 rollback事務回滾 commit 事務確認 2.直接用set來改變mysql的自動提交模式 mysql預設是自動提交的,也就是你提交乙個query,就直接執行!可以通過 set ...