當前位置:首頁 » 文件管理 » select緩存

select緩存

發布時間: 2025-02-16 05:55:36

『壹』 面試官:select語句和update語句分別是怎麼執行的

深入了解sql執行過程,無論是SELECT還是UPDATE語句,都遵循了類似的流程,但具體實現存在差異。理解這些差異不僅有助於面試,更能優化SQL執行效率。



SELECT語句執行流程


執行SELECT語句時,主要分為以下幾個步驟:



  • 連接器: 首先校驗用戶名和密碼,驗證許可權。連接成功後,許可權范圍內的操作才能繼續。

  • 檢索緩存: 從緩存中查找是否執行過此SQL,緩存命中直接返回結果,未命中則繼續。

  • 分析器: 包括詞法分析和語法分析,確定語句類型和具體操作。

  • 優化器: 根據解析樹生成最優執行計劃,考慮使用索引、表關聯順序等。

  • 執行器: 執行優化後的計劃,調用存儲引擎讀介面,獲取數據。


UPDATE語句執行流程


執行UPDATE語句時,同樣經過連接器、分析器、優化器、執行器,但區別在於涉及redo log和binlog的操作。



  • redo log: 先寫日誌,後更新內存和磁碟,提高效率。

  • binlog: 記錄原始SQL,用於數據恢復和復制。


關鍵點


在執行過程中,SELECT和UPDATE的主要區別在於對數據的訪問和修改。同時,使用緩存、優化器、redo log和binlog等功能,可以顯著提升SQL執行效率。理解這些技術的原理和應用,對於提升資料庫性能至關重要。



綜上所述,SELECT和UPDATE語句在執行流程上有相似之處,但在具體操作上存在差異,涉及的數據訪問和修改方式不同。深入理解這些差異,有助於優化SQL查詢和資料庫性能。這一內容涉及的技術點包括緩存機制、SQL解析與優化、日誌系統等,這些都是資料庫管理中不可或缺的組成部分。

『貳』 MyBatis二級緩存帶來的問題

MyBatis二級緩存使用的在某些場景下會出問題,來看一下為什麼這么說。

假設我有一條select語句(開啟了二級緩存):

selecta.col1, a.col2, a.col3, b.col1, b.col2, b.col3fromtableA a, tableB bwherea.id= b.id;

對於tableA與tableB的操作定義在兩個Mapper中,分別叫做MapperA與MapperB,即它們屬於兩個命名空間,如果此時啟用緩存:

MapperA中執行上述sql語句查詢這6個欄位

tableB更新了col1與col2兩個欄位

MapperA再次執行上述sql語句查詢這6個欄位(前提是沒有執行過任何insert、delete、update操作)

此時問題就來了,即使第(2)步tableB更新了col1與col2兩個欄位,第(3)步MapperA走二級緩存查詢到的這6個欄位依然是原來的這6個欄位的值,因為我們從CacheKey的3組條件來看:

<select>標簽所在的Mapper的Namespace+<select>標簽的id屬性

RowBounds的offset和limit屬性,RowBounds是MyBatis用於處理分頁的一個類,offset默認為0,limit默認為Integer.MAX_VALUE

<select>標簽中定義的sql語句

對於MapperA來說,其中的任何一個條件都沒有變化,自然會將原結果返回。

這個問題對於MyBatis的二級緩存來說是一個無解的問題,因此使用MyBatis二級緩存有一個前提: 必須保證所有的增刪改查都在同一個命名空間下才行 。

『叄』 Oracle如何清理多次select查詢後在內存中的緩存數據

ALTER SYSTEM FLUSH SHARED_POOL

這個語句清除SGA中的 shared pool,shared pool存儲下面的信息:
1、數據字典
2、Shared SQL & PL/SQL,存儲過程、函數、包以及觸發器
但是有一點要清楚的是假如這些對象正在使用時是無法清除的。

熱點內容
買房幫賣家解壓的風險 發布:2025-02-19 17:39:58 瀏覽:223
安卓手機購買記錄在哪裡看 發布:2025-02-19 17:39:57 瀏覽:81
原神安卓怎麼最高畫質 發布:2025-02-19 17:39:12 瀏覽:133
如何查看hp伺服器硬碟狀態 發布:2025-02-19 17:38:35 瀏覽:939
i在c語言中的意思 發布:2025-02-19 17:38:35 瀏覽:163
如果不玩游戲手機哪個配置夠用 發布:2025-02-19 17:34:37 瀏覽:752
照相機顯示存儲卡錯誤 發布:2025-02-19 17:32:59 瀏覽:873
縮小資料庫 發布:2025-02-19 17:32:58 瀏覽:15
阻止java 發布:2025-02-19 17:16:39 瀏覽:92
伺服器電腦光碟機打不開怎麼辦啊 發布:2025-02-19 17:15:05 瀏覽:179