Mysql字段沒有索引,通過where x = 3 for update是使用什么級別的鎖

沒有索引時,FOR UPDATE 會鎖住整個表

現在,你正在一本一本地翻看所有書,尋找“維修中”的書,并且你對管理員說:“在我清點和修改完之前,別人不能動這些書,也不能往這個范圍里加新書!

  • 問題1:如何鎖住你找到的“維修中”的書?
    你每找到一本“維修中”的書,就給它貼上一個“正在處理,請勿觸碰”的標簽(行級排他鎖)。

  • 問題2:如何防止別人“往這個范圍里加新書”?
    這是最關鍵的。因為你沒有“狀態”的目錄卡片(沒有索引),你不知道“維修中”的書在圖書館的哪個具體位置。它們可能散落在圖書館的任何角落。

    • 你無法像有索引那樣,只鎖住“計算機類”書架的某個空位(間隙鎖)。
    • 你正在全圖書館地毯式搜索。
    • 如果允許其他管理員在你搜索的時候,隨便往任何一個空書架上放一本新的“維修中”的書,那么你就會遇到“幻讀”——你清點完后,發現多出了幾本你沒見過的“維修中”的書。

唯一的辦法就是:

為了確保在你搜索和處理期間,沒有任何新的“維修中”的書被偷偷放進來,圖書館管理員只能宣布:

“暫停營業!所有人都不能動任何書,也不能放新書進來,直到這位管理員清點完畢!”

這就是表級排他鎖。它鎖住了整個圖書館,確保了在你操作期間,沒有任何新的“維修中”的書能夠被插入,從而徹底避免了幻讀。

總結一下:

WHERE 條件中的字段沒有索引時,數據庫無法精確地定位和鎖定數據范圍。為了滿足 FOR UPDATE 語句防止幻讀的要求,它不得不采取最保守、最安全的策略——鎖定整個表。這就像為了防止一只老鼠跑進屋子,你把整個房子的大門都鎖死了。雖然有效,但代價是犧牲了其他人的自由(并發性)。

所以,為了提高數據庫的效率和并發性,對于那些經常用于 WHERE 條件,特別是用于 FOR UPDATE 的字段,強烈建議創建索引。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/88441.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/88441.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/88441.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

TCP-與-UDP-協議詳解:原理、區別與應用場景全解析

TCP 與 UDP 協議詳解:原理、區別與應用場景全解析 在日常使用網絡的過程中,我們經常聽到 TCP 和 UDP 這兩個詞。你打開網頁、發送消息、觀看視頻,背后都在使用 TCP 或 UDP 進行數據傳輸。那么這兩個協議到底是怎么工作的?它們之間…

GitHub信息收集

目錄 簡介 一、入門搜索技巧 1. 基本關鍵詞搜索 2. 文件類型限定搜索 3. 用戶/組織定向搜索 二、精準定位技巧 1. 組合搜索條件 2. 排除干擾結果 3. 路徑限定搜索 三、防御建議 四、法律與道德提醒 簡介 GitHub作為全球最大的代碼托管平臺,存儲著數十億…

由 DB_FILES 參數導致的 dg 服務器無法同步問題

由 DB_FILES 參數導致的 dg 服務器無法同步問題 用戶反映,dg 服務器數據從昨晚(7月8日)開始停止同步。 連接服務器發現沒有 mrp 進程,并且 OPEN_MODE 參數也不正確。具體情況如下所示: SQL> select process, status…

Go語言泛型-泛型對代碼結構的優化

在Go語言中,Go泛型-泛型對代碼結構的優化部分主要探討了泛型如何幫助我們優化代碼結構、減少重復代碼,并提高代碼的可維護性、可讀性和復用性。以下是詳細內容: 一、引言 Go 1.18 引入了泛型,極大地提高了語言的靈活性。泛型使得我們可以編寫更加通用、可復用且類型安全的…

【1-快速上手】

文章目錄前言簡介什么是 Konva?安裝 Konva概述它是如何工作的?基本形狀樣式事件拖放濾鏡動畫選擇器序列化與反序列化性能前言 結合項目實際業務需求,在 Fabric、Konva 等圖形化框架中,我選擇了性能表現好的 Konva。首先去學習官方…

【LeetCode】209. 長度最小的子數組(前綴和 + 二分)

【LeetCode】209. 長度最小的子數組(前綴和 二分)題目描述前綴和二分優化前綴和總結二分總結題目描述 題目鏈接:【LeetCode】209. 長度最小的子數組(前綴和 二分) 給定一個含有 n 個整數的數組和一個整數 target。…

文件系統----底層架構

當我們談到文件系統的時候,最重要的點在于:文件的內容與屬性是如何存儲在磁盤中的?以及操作系統是如何精準定位到這些文件內容的?在談及文件的內核前,我們先來了解一下儲存文件的硬件-----硬盤一.理解硬件首先我們來看…

小程序開發平臺,自主開發小程序源碼系統,多端適配,帶完整的部署教程

溫馨提示:文末有資源獲取方式全開源與自主開發源碼完全開放:開發者可自由修改前端界面、后端邏輯及數據庫結構,支持深度定制(如調整用戶端交互流程、商家端管理功能等)。技術棧透明:基于主流技術&#xff0…

stp拓撲變化分類

Max Age 20sHellotime 2sForward delay 153、拓撲改變需要多長時間1)根橋故障:需要50秒(Max age2個forwarding delay)2)非直連鏈路:非直連故障在穩定的STP網絡,非根橋會定期收到來自根橋的BPDU報…

一、深度學習——神經網絡

一、神經網絡 1.神經網絡定義:人工神經網絡(Artificial Neural Network,ANN)也簡稱為神經網絡(NN),是一種模仿生物神經網絡結構和功能的計算模型。人腦可以看作是一個生物神經網絡,由…

【牛客算法】 小紅的奇偶抽取

文章目錄 一、題目介紹1.1 題目描述1.2 輸入描述1.3 輸出描述1.4 示例二、解題思路2.1 核心算法設計2.2 性能優化關鍵2.3 算法流程圖三、解法實現3.1 解法一:字符串分離法3.1.1 初級版本分析3.2 解法二:數學逐位構建法(推薦)3.2.1 優化版本分析四、總結與拓展4.1 關鍵優化技…

Maven 繼承:構建高效項目結構的利器

一、引言 Maven 是一個強大的項目管理工具,它通過標準化的項目結構和依賴管理極大地簡化了 Java 項目的開發流程。在 Maven 中,繼承是一種非常有用的功能,它允許我們創建一個父項目,其他子項目可以繼承這個父項目的配置信息&#…

Mysql組合索引的update在多種情況下的間隙鎖的范圍(簡單來說)

簡單來說,當 UPDATE 語句的 WHERE 條件使用了組合索引,并且需要鎖定不存在的“間隙”來防止幻讀時,就會產生間隙鎖。間隙鎖的范圍取決于 WHERE 條件如何利用組合索引,以及數據庫的隔離級別。 我們用圖書館的例子。比如&#xff1a…

什么是Apache Ignite的affinity(親和性)

在 Apache Ignite 中, affinity(親和性) 是一種用于控制數據分布和查詢性能的重要機制。它允許開發者指定數據如何在集群中的節點之間分布,從而優化數據訪問和查詢效率。以下是關于 affinity 的詳細解釋:數據親和性&a…

youtube圖論

dfs排序lifo & fifo存儲方式鄰接矩陣dijstra處理過的保存/更新,意味著一個節點避免了重復訪問bfs dfs

借助ssh實現web服務的安全驗證

背景 公有云服務器 http 服務 80端口,想做到安全訪問無須HTTPS 客戶端證書方便、快捷、安全 SSH 隧道 本地代理 使用 SSH 隧道將 HTTP 服務“隱藏”在 SSH 之后: # 客戶端建立隧道(將本地 8080 轉發到服務器的 80 端口) ssh…

狀態機在前端開發中的藝術:從理論到框架級實踐

文章目錄一 狀態機:復雜邏輯的終結者1.1 什么是狀態機?1.2 為何前端需要狀態機?二 狀態機核心概念深度解析2.1 有限狀態機(FSM)與分層狀態機(HSM)2.2 狀態機的數學表示三 前端開發中的狀態機實戰…

把word中表格轉成excle文件

把word中表格轉成excle文件 from docx import Document from openpyxl import Workbook from pathlib import Path# 打開 Word 文檔 document Document(./weather_report.docx) tables document.tables# 輸出文件路徑 output_file Path(./weather_report.xlsx)# 如果文件已存…

運維打鐵: 阿里云 ECS 實例的高效運維與管理

文章目錄思維導圖正文內容一、實例基礎管理1. 實例創建2. 實例配置調整3. 實例停止與啟動二、性能監控與優化1. 系統性能指標監控2. 磁盤 I/O 優化3. 網絡優化三、安全防護1. 防火墻設置2. 賬號安全管理3. 數據備份與恢復四、自動化運維1. 腳本自動化2. 使用云助手五、成本優化…

RV1126平臺(Buildroot Linux)+ SunplusIT SPCA2688 USB攝像頭 RTSP推流全流程復盤與問題解決記錄

# RK RV1126平臺(Buildroot Linux) SunplusIT SPCA2688 USB攝像頭 RTSP推流全流程復盤與問題解決記錄一、平臺與需求- **硬件平臺**:Rockchip RV1126 - **操作系統**:基于Buildroot定制的Linux系統 - **USB攝像頭**:Su…