首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

11 億條數據在 Oracle 中的存儲與查詢實踐

     編輯:程式設計綜合問答

規模定性

11 億行在當前硬件下不算海量(單表幾百 GB)。單機 SSD + 足夠內存可直接全表掃描,若追求極致性能再考慮分庫分表。

物理存儲優化

  • 分區表:按時間/業務鍵 Range/Hash 分區,將數據分散到多個 Tablespace(不同物理磁盤),並行 I/O。
  • 索引與數據分離:索引放快速存儲(NVMe),數據放大容量 HDD。
  • 壓縮:COMPRESS FOR OLTP 或 Hybrid Columnar Compression (Exadata) 降低 I/O。

邏輯存儲設計

  • 合理範式化/反範式化,避免過度 Join。
  • 熱點列單獨建表(垂直拆分)。

查詢優化核心

  • 全表掃描不可避免:若每次查 11 億行,無索引可用,只能堆硬件(並行查詢 PARALLEL、In-Memory Column Store)。
  • 點查/範圍查:嚴格遵循 SARGable 原則,建立合適索引(B-tree、Bitmap、Composite),避免隱式轉換、函數包裹列。
  • 分區裁剪:查詢條件包含分區鍵,自動跳過無關分區。

總結:11 億行首看「怎麼查」,再定存儲策略;盲目分庫分表反增維護負擔。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved