データベースについてまたまた学習中。
覚えておきたいポイントなど。
- データを収めておくべき媒体では「記憶コスト(単位金額当たりの容量)」と「アクセス速度」の2つが重要なパラメータ
- メモリとHDDでは前者はアクセス速度が速く、後者は記憶コストが低い
- SQLが遅いことの原因はディスクOが大きいことによるため、メモリに存在するデータだけで結果が返せると非常に速い。
- このようにパフォーマンス向上を目的として、データを保持するメモリをバッファやキャッシュという
- DBMSがデータを保持するために使うメモリは大きく「データキャッシュ」と「ログバッファ」「ワーキングメモリ」がある。
- データキャッシュはディスクにあるデータの一部を保持するためのメモリ領域。主に検索系で使用される
- ログバッジョは更新処理の実行に関連する。更新SQLはすぐに処理を実行するのではなく、一度このログバッファ上に情報をため、あとでまとめて処理を行う。
- ともにパフォーマンス向上のためにこれらは行われる。データの整合性とパフォーマンスは一般的にトレードオフ。
- DBMSは検索を目的として作られたシステムなため、一般的にデータキャッシュのほうにメモリがたくさん使われる。
- ワーキングメモリはソートやハッシュなどで使われる。
- データベースが実際にクエリを受け取り、検索するまでの流れは下記URLを参考に。
http://skill-up-engineering.com/?p=1758 - データ量の検索はフルスキャンとインデックススキャンがあり、前者はデータと検索速度が正比例にあるが、後者は対数関数的になる。
参考文献
SQL実践入門