今から父になるから俺の悩みを聞いてくれ。

子ども産まれるんで育児とか生き方について書きます。映画とか心理学とかITとかの趣味についても書きます。

FileMakerの勉強 vol.3.1 (索引について)

どうもです。maximonelson49です。第三回のFileMaker勉強記事で索引ってなんぞ? となったので、そこ調べた。あと調べたときに読んだ記事のまとめもする。(いい記事だった)

 

日経IT pro 『1週間で学ぶIT基礎の基礎』

かーなり古い記事(2000年。前世紀)だが、下記のようなよさそうな記事があった。
1週間で学ぶIT基礎の基礎 - すぐわかるデータベースの基礎---目次:ITpro
むしろこの記事を最初に概観として読んでもいいくらい。んで、この記事の第三回目に「索引」について解説があったので、それを引いておく。

インデックスとは,レコードを高速に検索するための仕組みです。実際のデータが格納されたテーブルとは別に,インデックス・テーブルと呼ぶテーブルを作成し,それを使ってレコードを検索します。インデックス・テーブルは,検索対象となるデータを格納したフィールドと,そのデータが実際のテーブルでどの位置にあるかを示す値を格納したフィールドで構成されます(図5)。たとえば,個人情報テーブルを「氏名」で検索するインデックス・テーブルなら,以下のようになります。実際の個人情報テーブルより,インデックステーブルの方がサイズが小さいので,高速に検索できるのです。
図5●インデックス・テーブル
 インデックスは,テーブルのあらゆるフィールドに対して作成できます。これまでに作成してきた電話帳のデータベースなら,「氏名」「電話番号」および「会社名」で検索するためのインデックスを作成できます。ただし,むやみにインデックスを多くすると,データの書き込み,更新,および削除の処理が遅くなってしまうので注意してください。これらの処理が発生するたびに,インデックス・テーブルが更新されるからです。さらに,インデックス・テーブルの分だけ,データ・ファイルのサイズが大きくなってしまうという問題もあります。

うーん、よく分かんないんだが、普通のテーブルは沢山のフィールド(タテ列)を持ってるもんだけど、インデックスは単一のフィールドだけにしてて検索の効率が高いよ、みたいな意味かな? インデックスを作るフィールドはあるていど絞る必要があり、これぞというフィールドはインデックスを作って高速検索可能にしておく、と。
フーム。そんなかんじかな?

 

今回は以上。

元記事のまとめを今度あげます。