查詢資料庫的知識時,很常聽到 OLTP 和 OLAP 兩個名詞,這其實是一種架構上的理念、需求度的問題,而不是特定的技術或產品。以下是針對這兩個名詞的介紹。
OLTP
Online Transactional Processing 的縮寫。
用於大量的交易 (Transaction),交易須遵守 ACID。交易的次數頻繁,每次交易的時間低,最好能夠產生執行計畫的快取。
Note: ACID 指的是 Atomatic, Consistent, Isolated, Durable:
- Atomatic (原子性):交易本身不能被分割或簡化,交易中有錯誤時,要可以回復到修改前的狀態。
- Consistent (一致性):交易開始前和結束後,資料保持完整,例如符合資料表本身的約束或回復 (rollback) 的結果。
- Isolated (隔離性):多筆交易同時執行時,可以確保資料不會亂掉。
- Durable (持久性):修改的結果是持久的,不會因故障或關機而遺失。
OLAP
Online Analytical Processing 的縮寫。
用於分析用途,包含資料聚合和批次處理,如 BI 和 Report。查詢的時間長,可以每次查詢時都重新產生執行計畫。
