skillup

技術ブログ

Database

DBの構造について メモリとHDD

投稿日:

データベースについてまたまた学習中。

覚えておきたいポイントなど。

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

参考文献
SQL実践入門

-Database
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

postgresの外部キー制約やcascadeについて

外部キーを貼っておくと、当然、削除などを行うときにエラーになり、truncateも当然できなくなりますが、cascadeをつけることで、関連するテーブルまで一気にtruncateされます。 [cray …

no image

SQL基礎 ウィンドウ関数

SQLの基礎(主にSELECT)を whereはレコードに対しての集計、havingはレコードの集合に対しての集計 ビューは一時的なselect文なのでサブクエリとほぼ等価 条件分岐で出力項目を変えた …

no image

サブクエリの使い方

以前も少し学習しましたが、今回からはサブクエリの扱い方です。特に異なった行の比較(年度計算など)に関して行われる自己結合をつかったものが非常に強力です。 例によってここを学習しています。 下記のような …

no image

sql_modeに関して

開発では動いていたのに本番ではint型のカラムで空白が入らない!みたいなエラーが出て、データベースにデータが入らないことが発覚し、調査をすることに・・・ sql_modeが原因でした・・・ sql_m …

no image

アンチパターン 連鎖倒産+エラー監視+データのバックアップ

本日は主にインフラの設計的なことに関して。 Contents1 連鎖倒産1.1 デメリット1.2 対策2 エラー監視2.1 デメリット2.2 対策3 データのバックアップ体制3.1 デメリット3.2 …

アーカイブ