【おーえるてぃーぴー】

OLTP(オンライントランザクション処理) とは?

最終更新:
💡 日々の注文や在庫更新を、取引単位で処理する

注文・予約・在庫更新など、日常業務の取引をオンラインで処理するデータベースの利用方式。多数の利用者からの短いトランザクションに応答し、登録・更新・検索などを扱う。

📌 このページのポイント
多数の利用者の、短い業務の取引を処理する 利用者 👤 👤 👤 👤 注文登録 在庫更新 予約受付 DB データ OLTP 日々の取引 注文・更新・検索 OLAP 集計・分析 売上の傾向など ACIDは取引の整合性を支える 業務ルールは制約やアプリでも実装
利用者の操作を、注文・在庫・予約などの短いトランザクションで扱う模式図。上の矢印は操作からデータ処理へ向かう流れ。下はOLTPとOLAPの目的の比較で、必ず別のDBに分けるという意味ではない。処理件数や応答時間の保証を示す図ではない。
ひよこ ひよこ
具体的にどんな場面で使われるの?
ペンギン先生 ペンギン先生
ECサイトの注文、在庫更新、銀行の振込、予約受付などだよ。利用者の操作に応じ、短いトランザクションで業務のデータを処理する。データを更新する処理がすべてOLTPになるのではなく、日常業務の取引を扱う利用方式なんだ。
ひよこ ひよこ
OLAPとは別のデータベースを使うの?
ペンギン先生 ペンギン先生
OLTPは日々の取引、OLAPは集計・分析が目的だよ。分析が業務処理を圧迫しないよう、DWHへデータを移す構成もある。一方、両方を扱うHTAPという構成もあり、必ず別のデータベースに分けるわけではないんだ。
ひよこ ひよこ
1秒間に何件くらい処理できるの?
ペンギン先生 ペンギン先生
TPSという件数の指標はあるけれど、OLTPという名前だけでは決まらないよ。トランザクションの内容、同時実行数、競合、索引、ハードウェアなどで変わる。自分の業務に近い負荷で、応答時間と件数を測る必要があるんだ。
ひよこ ひよこ
ACIDがあれば、業務の間違いも防げる?
ペンギン先生 ペンギン先生
たとえば注文登録と在庫更新を一つの取引にまとめ、全部を確定するか取り消すかを扱えるよ。ただし、正しい価格や在庫の引当ルールを自動的に決めるわけではない。制約やアプリの処理、必要な分離レベルも設計するんだ。
ひよこ ひよこ
複数サーバーでも取引を処理できる?
ペンギン先生 ペンギン先生
分散SQLデータベースにも、そのための仕組みがあるよ。たとえばTiDBはサーバーを追加する水平スケーリングと、取引・分析の両方を扱うHTAPに対応する。どのDBでも同じ性能や保証になるわけではなく、構成と取引の条件を確認するんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「OLTP」って出てきたら「注文や在庫更新など、日常業務の取引を処理する利用方式」と思えばだいたいOK!
📖 おまけ:英語の意味
「Online Transaction Processing」 = オンライントランザクション処理
💬 オンラインでtransaction(取引)をprocessing(処理)するという名前だよ。注文やATMの操作などを、ひとまとまりの業務処理として扱う。必ず即座に終わることを意味する名前ではないんだ。

参考資料

← 用語集にもどる