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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql事务和非事物_mysql事务型与非事务型表1.8.5.3. 事务和原子操作

發布時間:2025/3/12 数据库 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql事务和非事物_mysql事务型与非事务型表1.8.5.3. 事务和原子操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.8.5.3.?事務和原子操作

MySQL服務器(3.23至該系列的最高版本,所有4.0版本,以及更高版本)支持采用InnoDB和BDB事務存儲引擎的事務。InnoDB提供了全面的ACID兼容性。請參見第15章:存儲引擎和表類型。

MySQL服務器中的其他非事務性存儲引擎(如MyISAM)遵從不同的數據完整性范例,稱之為“原子操作”。按照事務術語,MyISAM表總能高效地工作在AUTOCOMMIT=1模式下。原子操作通常能提供可比較的完整性以及更好的性能。

由于MySQL服務器支持兩種范例,因而你能決定是否利用原子操作的速度更好地服務于你的應用程序,或使用事務特性。該選擇可按表進行。

正如所闡述的那樣,事務性和非事務性表類型之間的權衡主要取決于性能。事務性表對內存和磁盤空間的要求更高,CPU開銷也更大。另一方面,多種事務性表類型,如InnoDB,也能提供很多顯著特性。MySQL服務器的模塊化設計允許同時使用不同的存儲引擎,以滿足不同的要求,并在所有情形下,提供最佳性能。

但是,即便使用非事務性MyISAM表,你將如何使用MySQL服務器的特性來保持嚴格的完整性呢?這些特性與事務性表類型相比又如何呢?

1.

如果應用程序采用了特定的編寫方式,依賴于在關鍵情況下能夠調用ROLLBACK而不是COMMIT,那么事務性類型更方便。使用事務,還能確保未完成的更新或崩潰的活動不被提交到數據庫,能為服務器提供自動回滾的機會,并保存你的數據庫。

如果使用非事務性表,MySQL服務器幾乎在所有情況下均允許你解決潛在的問題,方式是在更新前進行簡單檢查,并運行檢查數據庫一致性的簡單腳本,如果出現不一致性,該腳本能自動修復它或給出告警。注意,僅使用MySQL日志或增加額外日志,通常能完美地更正表,同時不會造成數據完整性損失。

2.

在很多情況下,能夠對關鍵的事務更新進行重寫,使之成為“原子”類型。一般而言,所有由事務解決的完整性問題均能用LOCK

TABLES或原子更新解決,從而確保了服務器不會自動中斷,后者是事務性數據庫系統的常見問題。

3.

為了安全使用MySQL服務器,無論是否使用事務性表,僅需啟用備份和二進制日志功能。這樣,你就能解決使用其他事務性數據庫系統時遇到的任何問題。無論使用的數據庫系統是什么,啟用備份總是個好主意。

在完整性具有最高重要性的情況下,即使是對非事務性表,MySQL也能提供事務級別的可靠性和安全性。如果使用LOCK

TABLES鎖定了表,所有更新均將被暫時中止直至完整性檢查完成。如果你獲得了對某一表的READ

LOCAL鎖定(與寫鎖定相對),該表允許在表尾執行并行插入,當其他客戶端執行插入操作時,允許執行讀操作。新插入的記錄不會被有讀鎖定屬性的客戶端看到,直至解除了該鎖定為止。使用INSERT

DELAYED,能夠將插入項置于本地隊列中,直至鎖定解除,不會讓客戶端等待插入完成

事務范型有自己的優點和不足之處。很多用戶和應用程序開發人員喜歡這類簡單性,在出現問題時或必要時,通過代碼解決問題。但是,即使你是原子操作范型的新手,或更熟悉事務,也請考慮非事務性表的速度益處,與經過優化調整的最快的事務性表相比,它的速度快3~5倍。

總結

以上是生活随笔為你收集整理的mysql事务和非事物_mysql事务型与非事务型表1.8.5.3. 事务和原子操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。