0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

メモリ資源とDBMSアーキテクチャのトレードオフ

Posted at

メモリ資源とDBMSアーキテクチャのトレードオフ

はじめに

DBMS(データベース管理システム)を設計・運用する際に避けて通れないのが、「検索と更新、どちらを優先するか」というリソース配分のトレードオフです。

本記事では、メモリという限られた資源をいかに活用するかという観点から、アウトプットを兼ねて、DBMS内部のキャッシュ戦略とパフォーマンスの関係を掘り下げて解説します。

システムの特性とトレードオフ

DBMSでは、データキャッシュとログバッファという2つのメモリ領域をどう配分するかがパフォーマンスに直結します。

データの安全性 パフォーマンス
データキャッシュ ×
ログバッファ ×

ログバッファを重視すれば更新処理のパフォーマンスが上がり、逆にデータキャッシュへ多くを割けば検索処理が高速になります。
このバランスはアプリケーションの性質により最適解が異なります。

データキャッシュとログバッファの役割

ユーザのSQL要求がデータキャッシュにヒットすれば高速に応答できますが、更新処理にはログバッファが不可欠です。

キャッシュに載っていないデータが要求された場合はディスクI/Oが発生し、パフォーマンスが著しく低下します。そのため、頻繁に利用されるデータはキャッシュに載せておくことが重要です。

検索と更新、どちらを重視するか

メモリは有限なリソースであり、すべての用途に十分な量を割り当てることはできません。したがって、「検索性能を取るか、更新性能を取るか」という判断が求められます。

理想は検索・更新のどちらにも十分なメモリを割り当てることですが、それが難しい場合、アプリケーションの性質に応じた調整が必要です。

自動メモリ調整機能に頼りすぎない

近年のDBMSでは、リソース配分を自動で調整する機能もありますが、すべてを自動に任せるのは危険です。システムの設計思想を理解したうえでのチューニングが不可欠です。

設計から読み取れる意図

ログバッファのサイズが大きければ更新処理重視、データキャッシュが大きければ検索処理重視と考えることができます。これはDBMSが「どのような用途で設計されているか」を知る手がかりになります。

まとめ

  • データキャッシュとログバッファはトレードオフの関係
  • アプリケーションの性質に応じたリソース配分が必要
  • DBMSの設計思想を読み解くことで、最適なチューニングが可能になる

メモリという貴重な資源の配分を誤れば、どちらの処理も中途半端になり、システム全体のパフォーマンスが低下します。
この辺は意識しておきたいですね。

参考

SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus)

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?