記憶階層(メモリ階層構造)とは?きおくかいそう
記憶階層(メモリ階層構造)とは、レジスタ・キャッシュ・主記憶・補助記憶を、速いほど小容量で高価、遅いほど大容量で安価という順に積んだ構成。DBはこの階層をソフト側にもう一段作っており、共有バッファ(PostgreSQLの shared_buffers)とOSのページキャッシュを挟んで、ディスクへの物理読込みを避けることで成り立っている。
最終更新:2026-10-06
データベースSPを最短で暗記・合格する →背景
1回のディスクアクセスがメモリの数万倍遅いという事実は変わらないので、速い層に次に使うものをどれだけ残せるかが性能を決める。DBがOSとは別に自前のバッファを持つのは、自分のアクセス傾向を知っているから——どのページがインデックスの根で、どれが一度きりの全表走査かを区別できる。試験ではこの費用の差が計算問題として出る。
具体例
PostgreSQLは8KBのページ単位で読み書きし、shared_buffers は物理メモリの25%前後が目安とされる。主記憶の読出しは約0.1マイクロ秒、NVMe SSDは約100マイクロ秒、HDDのランダムアクセスは約10ミリ秒で、主記憶とHDDでは10万倍の開きがある。100万行の表がバッファに載るかどうかで応答が桁で変わる。
試験での引っ掛け
上位ほど高速・小容量・高コストという向きを逆に覚えやすい。実装で見落とすのはメモリが足りないときの振る舞いで、PostgreSQLはソートやハッシュ結合が work_mem に収まらないと一時ファイルへ溢れ、同じSQLが急に数十倍遅くなる。バッファヒット率が高くてもこの溢れは別に起きる。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。