首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

主流資料庫記錄存取機制對比:MySQL、Oracle、SQL Server

     編輯:MySQL 資料庫相關知識

MySQL:直接位址存取

  • LIMIT offset, count 直接定位資料頁/索引位置
  • 優勢:簡單、高效、無額外開銷
  • 劣勢:大偏移需掃描前段索引

Oracle:JDBC 游標回滾

  • ResultSet 預設唯讀、順向,支援 TYPE_SCROLL_INSENSITIVE 回滾
  • 實作:JDBC 驅動端緩存游標位置,回滾時重新定位
  • 記錄結構:指標的指標,getXXX() 時才從資料庫取實際值
  • 優勢:標準 JDBC 介面、支援雙向游標
  • 劣勢:客戶端記憶體佔用大、網路往返多

SQL Server:較差的游標實作

  • 早期版本游標效能極差,大量資料回滾幾乎不可用
  • 建議改用 OFFSET FETCH (2012+) 或 Keyset 分頁
  • T-SQL 游標選項 FAST_FORWARD、STATIC 需精心選擇

架構啟示

特性MySQLOracleSQL Server
分頁語法LIMITROWNUM / OFFSET FETCHOFFSET FETCH
游標支援無(靠應用層)完整 JDBCT-SQL 游標
大偏移效能線性遞減客戶端緩存差
推薦大資料分頁書籤/ID 快取結果集緩存Keyset/CTE

最佳實踐共識

  • 避免深分頁,採用「載入更多」或書籤分頁
  • 大量資料匯出用游標/串流,勿一次性載入記憶體
  • ORM 框架選擇支援串流查詢的實作
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved