skillup

技術ブログ

Database

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

投稿日:

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

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

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

参考文献
SQL実践入門

-Database
-

執筆者:


comment

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

関連記事

no image

NULLについて

「達人に学ぶSQL徹底指南書」を読み進めていきましたがNULLについていろいろ書いてあるのでメモリます。 Contents1 NULLには未知と適用不能の2パターンがある2 = NULL が使えず I …

no image

MySQL小ネタ テーブル単位のリストア・SQLの小ネタ(バックスラッシュの検索)

MySQLのちょい小ネタ。 Contents1 テーブル単位でバックアップ&リストア2 バックスラッシュの入ったSQLについて テーブル単位でバックアップ&リストア 1 通常のdump(データベース単 …

no image

データベースのインデックスについて

今回はデータベースのインデックスに関して。 検索条件を早くする場合、何よりも速度が速くなるのはインデックスを張ることでしょう。 インデックスを張ることは単語を索引順に並べることですので、劇的に速度が向 …

no image

persistence.xmlのプロパティについて

JavaEEではデータベースとの設定情報はpersistence.xmlに記述します。 (ユーザー名、パスワード、ポート、driver名、データベース名などの情報はglassfish-resource …

no image

sql_modeに関して

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

アーカイブ