自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySQL執(zhí)行大事務會存在什么問題?

數(shù)據(jù)庫 MySQL
拆分事務,將大事務分解為多個小事務。將不需要在事務中執(zhí)行的操作(如讀取、內(nèi)存計算、I/O操作、遠程調(diào)用等)移到事務外部處理。

前言

之前在如何實現(xiàn)百萬級數(shù)據(jù)從Excel導入中有提到一句不建議利用大事務進行一個錯誤處理。為什么不建議呢。本次來簡單說一下。

圖片

所謂大事務,通常指包含大量要執(zhí)行的SQL語句和較長執(zhí)行時間的事務。

這樣的大事務往往會帶來諸多問題。如下:

  1. 占用數(shù)據(jù)庫連接:這一點很好理解。隨著SQL語句的增多,執(zhí)行時間也會相應延長。大型事務會持續(xù)占用數(shù)據(jù)庫連接,由于數(shù)據(jù)庫連接資源有限,長時間占用可能導致其他事務無法獲取連接,從而降低系統(tǒng)的吞吐量,影響系統(tǒng)的可用性。
  2. 難以回滾:大事務涉及的數(shù)據(jù)量較大,回滾操作可能變得異常耗時。若事務需要回滾或失敗,可能需要花費大量時間才能完全撤銷所有修改,對數(shù)據(jù)庫的可靠性和性能造成不利影響。
  3. 鎖競爭:大事務可能引發(fā)繁瑣的寫操作,導致數(shù)據(jù)的鎖定。這可能導致其他并發(fā)事務在訪問相同資源時遭遇鎖競爭,進而造成性能下降和延遲增加。長時間的鎖定還可能導致其他事務的等待和阻塞。
  4. 日志空間占用:大事務可能產(chǎn)生大量日志,特別是 binlog。當單個事務超出最大允許的Binlog文件大小限制(max_binlog_cache_size),會出現(xiàn)錯誤:Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage; increase this mysqld variable and try again

解決方案:

拆分事務,將大事務分解為多個小事務。將不需要在事務中執(zhí)行的操作(如讀取、內(nèi)存計算、I/O操作、遠程調(diào)用等)移到事務外部處理。


責任編輯:武曉燕 來源: 碼上遇見你
相關(guān)推薦

2022-06-27 16:12:48

CSS像素前端

2020-06-15 08:06:25

ES數(shù)據(jù)

2010-09-02 14:36:44

Linux命令行

2019-04-26 13:01:16

ServiceMesh微服務架構(gòu)

2010-05-13 09:59:50

MySQL數(shù)據(jù)庫

2024-10-15 09:25:08

JDBCMybatis數(shù)據(jù)庫

2022-04-04 07:51:32

Web框架

2021-07-16 06:56:50

邊緣計算分布式

2021-03-23 18:32:46

JavaScript編程開發(fā)

2020-05-22 10:02:43

Python語言編程

2021-10-16 12:52:17

Builder模式生成器

2024-09-12 09:34:32

2021-02-08 08:04:52

JavaScript語言OOP

2024-12-27 15:28:01

CQRS架構(gòu)方式

2024-07-02 12:25:01

2019-08-28 07:45:45

數(shù)據(jù)存儲層多線程

2024-12-13 09:26:35

2011-11-30 15:28:32

在線協(xié)作系統(tǒng)

2020-11-30 14:40:52

事務系統(tǒng)項目

2024-11-04 10:28:08

點贊
收藏

51CTO技術(shù)棧公眾號