DBトランザクション性能
サーバーの構成とクエリの内容から、データベースの処理能力と必要な台数を試算します。
DBトランザクション性能ツール
計算式と考え方
1トランザクションの応答時間は「クエリ数 × 1クエリの平均応答時間」で、5本×1.2msなら6.0msです。1本の接続が1秒に処理できるのは1000÷6.0で約167件になります。同時に走らせられる本数はvCPU数とストレージの種類で決まり、4vCPUとNVMe(係数2.5)なら10本相当です。処理の性質(更新中心は1.0)とメモリの充足度を掛けると、処理能力は約1,667TPSです。ピーク時の必要量は500×2倍で1,000TPSとなり、使用率は60.0%、必要台数は1台、余力は約667TPSです。
処理能力を決める要素
| クエリ数と応答時間 | 1件の処理時間を決める最大の要因。インデックスの不足はここに直接現れる |
|---|---|
| vCPU数 | 同時に走らせられる処理の本数を決める。増やしてもロック競合があれば頭打ちになる |
| ストレージ | NVMe接続とHDDでは書き込みの遅延が桁で違い、コミットの速度を左右する |
| メモリ | 作業用データが載りきればディスクへの読み出しが減る。載りきらないと急に遅くなる |
DBトランザクション性能の詳しい解説
データベースの処理能力を見積もるとき、最初に押さえるべきは1トランザクションあたりのクエリ数です。1件の登録処理の裏で20本の問い合わせが走っていれば、応答時間は同じでも処理できる件数は4分の1になります。実際の性能問題の多くは、サーバーの性能不足ではなく1件あたりのクエリ数が想定より多いことに起因します。特に、一覧の各行ごとに関連データを引く形の実装は、件数が増えるほどクエリ数が線形に増えます。処理能力を上げる前に、この構造を確認する価値があります。ストレージの種類は、更新の性能に強く効きます。トランザクションの確定時にはログの書き込みが必要で、この書き込みが完了するまで処理は待たされます。HDDでは1回の書き込みに数ミリ秒かかりますが、NVMe接続のSSDでは数十マイクロ秒で済みます。更新が中心の処理では、この差がそのまま処理件数の差になります。逆に参照が中心であれば、必要なデータがメモリに載っている限りストレージの差はあまり現れません。メモリの効き方は連続的ではありません。作業に必要なデータがメモリに収まっている間は高速に動きますが、収まらなくなった瞬間にディスクへの読み出しが発生し、性能が段階的に落ちます。データ量が増えていく運用では、この境界を超える時期を予測しておくことが重要です。テーブルとインデックスの合計サイズと、実際に頻繁に触れられる範囲の大きさを把握しておくと、増設の時期が読めます。参照用のレプリカを追加すると読み取りの処理を分散できますが、書き込みは分散されません。更新の比率が高い処理ではレプリカを増やしても効果は限定的です。またレプリカへの反映には遅延があるため、書き込んだ直後に同じデータを読む処理をレプリカに向けると、古い値が返ることがあります。どの参照をレプリカに回してよいかは、業務上の許容範囲によって決まります。ロックの競合は、計算では表れにくい要因です。同じ行を多数の処理が同時に更新しようとすると、CPUに余裕があっても待ちが発生します。在庫の数量、集計値、採番のテーブルなど、特定の行に更新が集中する設計では、この待ちが上限を作ります。設計の段階で、更新が集中する箇所を分散できないか検討することが有効です。ピーク時の倍率の設定も見積もりを左右します。一般的な業務システムでは平常時の2倍程度ですが、販売の開始やキャンペーンを伴うサービスでは10倍を超えることがあります。倍率を過小に見ていると、最も重要な場面で処理が止まります。過去の実績があれば実測から、なければ想定される同時アクセス数から逆算して設定します。
業界・現場での使い方
構成の事前検討
必要なvCPU数とストレージの種類を、目標TPSから逆算します。
ピーク耐性の確認
平常時の何倍まで耐えられるかを使用率から把握します。
レプリカ導入の判断
参照用レプリカを追加したときの処理能力の変化を確認します。
よくある間違い・注意点
- 1件あたりのクエリ数を確認しない — 1トランザクションのクエリ数が想定の4倍あれば処理能力は4分の1です。まず実測してください。
- レプリカで書き込みも速くなると考える — レプリカが分散するのは読み取りだけです。更新中心の処理では効果が限定的です。
- ロック競合を見込まない — 同じ行への更新が集中するとCPUに余裕があっても待ちが発生します。設計で分散を検討します。
関連する規格・法規
- 業界標準
- ISO/IEC規格
※本ツールは公的基準に基づく参考計算です。実際の設計・施工・法令適用は最新の告示・規格および所轄官庁の判断に従ってください。
よくある質問(FAQ)
TPSはどう測ればよいですか?
本番と同じデータ量で負荷試験を行うのが確実です。試験のデータ量が小さいとメモリに全部載り、実態より高く出ます。
vCPUを倍にすれば倍速になりますか?
ロック競合やストレージの待ちがなければ近い伸びになりますが、実際にはどこかで頭打ちになります。
レプリカの遅延はどの程度ですか?
通常はミリ秒から数秒ですが、大量更新の直後には広がります。書き込み直後の参照は主サーバーに向ける設計が安全です。