« Mysqlが必要か?大量のデータ処理 | メイン | Mysqlが必要か?データの並び替えをしたいかどうか »

November 05, 2005

Mysqlが必要か?データの抽出を行いたいか

第11回

前回、Mysqlが必要かどうかは、あなたのホームページに
大量のデータを扱うかどうかで考えたほうがよいという話しをしました。

では、データ量が少なければMysqlは必要ないのでしょうか。
実はそうとも言いきれません。

私のホームページ「パステル・ミディリン」では
音楽の投稿を受けつけていて、その音楽の検索システムを
Mysqlを使って構築しています。

http://midilin.sakura.ne.jp/midilin/php/music_search/music_index.php

この画面では、検索しか行えませんが
別の画面で、音楽更新係さんが曲を登録するシステムも
他にMysqlで作ってあります。

曲の数は全曲あわせて、400曲程度です。
データとしてはそれほど多くありません。でもMysqlを使っています。

具体的に、テキストデータとMysqlを使ったシステムではどう違うのか考えてみましょう。
テキストデータの場合、検索をはじめると、1行1行テキストを読みにファイルの検索を全部検索しにいきます。
だから処理が遅いのですね。

1つのテキストデータとして、音楽の投稿をつくるとこんな感じになるでしょうか。

(音楽データベース)
投稿者の名前、メールアドレス、ホームページのURL、曲名、曲URL、ファイル名、音楽のジャンル、更新日など・・・・

もし、この中から曲名を抜き出したいなんていうことがあったらどう処理しますか?

処理の概要としては、
・曲名が何番目にあるかを定義
・ファイルを先頭から読みこみ
・4番目が曲名なのでそれを抽出

なんていう流れになります。
これが100曲あったら、この処理を100回ぐるぐるまわして、
それを表示するということになるのですが、
どのデータが何番目にあるかとか、覚えていなければいけませんし大変です。

データベースを利用すると、そのわずらさしさがありません。
データベースにアクセスするにはSQLというプログラミング言語を使うのですが

select 曲名 from 音楽データベース

これだけで曲名がずらっと抽出できるのです。
何番目に曲があるかなんて意識しなくてもよいですよね。

もし6番目にあるファイル名を抜き出したかったら

select ファイル名 from 音楽データベース where 6番目

これで終わりです。
簡単でしょう?

複数の項目があって、それを抽出したい場合にデータベースは力を発揮します。
他にはデータベースを使ってどういうことが可能なのでしょうか。
次回、掲載しますね。

投稿者 midilin : November 5, 2005 11:00 AM

コメント

コメントしてください




保存しますか?