skillup

技術ブログ

Database

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

投稿日:

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

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

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

参考文献
SQL実践入門

-Database
-

執筆者:


comment

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

関連記事

no image

cakePHPでの直SQL

今回はCakePHPにて直のSQLを書く方法を。 cakePHPにて大概の処理はもともと備わっているコマンドでなんとかなりますが、まれに直SQLを書いたほうがらくなこともあります。 書き方その1 [c …

no image

外部結合 応用編2

引き続き結合についてです。 Contents1 1対Nの結合に関して2 完全外部結合3 差集合(class_aだけに存在するものとclass_bだけに存在するもの)3.1 class_aのみ3.2 c …

no image

MySQLのセキュアな設定

以前SSHの設定についていろいろ書いたんで今回はMySQLに関して。 Contents1 基本的な処方箋(MySQLに限らないかも)2 ホストのアクセスを制限する3 LOCAL INFILEコマンドを …

no image

checkboxでの値の管理

formにてcheckboxの値を一つのカラムにいれて管理する機会があったのですが、これ入力更新出会っても検索であっても処理がなかなか厄介です。特に検索の時ですね・・・ 要するに値の候補が1,2,3, …

no image

集合としてのSQL

今まで何度かSQLが集合ということを扱ってきました。 今回はそれがよくわかる例を。 実務ではあまりないと思うのですが、集合をイメージしやすい例題として、2つのテーブルが全く同じケースを考えます。 下記 …