ホーム > mixiユーザー(id:17119814) > mixiユーザーの日記一覧 > データベース(3)

mixiユーザー(id:17119814)

2015年06月15日01:36

47 view

データベース(3)

どんなデータベースでも必ず持っている要素がキーとバリューである。キーというのは、
検索するのに使用するためのコード、バリューはそれによって引き出されるデータ値のこ
とを指す。

リレーショナルデータベース(以下RDB)の場合、表を作成する場合にはプライマリー
キーをつけるケースが多い。プライマリーキー(以下主キー)には「NULLは許されな
い」「必ずユニークでなければならない」などといった制約がある。その代償として主キ
ーによる検索は常に瞬殺である。RDBにおいて最も高速な検索は主キー指定による検索
である。

例えば郵便番号とそれに紐づく住所を管理するマスタ表ならば、郵便番号を主キーにする
べきだし、社員番号と紐づく社員情報を管理する表であれば社員番号を主キーにするべき
である。こんなのは基本中の基本である。

では主キー指定以外の検索を行うとどうなるか?答えは「全件サーチ」である。億単位と
かのとてつもない件数の表に対してこんな検索を行うとどえらいことになる。サーバーの
CPU使用率は跳ね上がるし、いつまでたっても結果が返ってこない。情報システムに対
するテロ行為のようなものである。

とはいっても、アプリからすると様々な条件で検索を行いたい。主キーでしか検索できな
い表なんか、アプリからしてみれば「ふざけんな、そんなもん使えるか」である。

こうした場合の問題解決策が「インデックス」である。

0 1

コメント

  • mixiユーザー

    mixiユーザー2015年06月15日 09:38
    表の特性と利用方法のマッチング。
    これをしっかりやっておかないとエライことになりますね。

    しかし、有る程度のルーズさがRDBの売りみたいな気もする。

    知恵の出しどころなのかな。

mixiユーザー

ログインしてコメントを投稿する