dポイントプレゼントキャンペーン実施中!

現在MySQLの4.0.17を使用しています。今度新しくデータベースを作成し、親テーブルと子テーブルを外部キーによって連結しています。また両方のテーブルともInnoDBで作成しています。

ここで質問なのですが、親テーブルのデータ量が800万件ぐらいになりそうなのですが、このような大きなデータベースを扱ったことがありません。どのような点に気をつけていればよいのでしょうか?また、2万件ぐらいのデータベースと比較した場合、やっぱり選択クエリの速度なども劇的に遅くなるものなのでしょうか?
素人の質問で申し訳ありませんがよろしくお願いいたします。

A 回答 (2件)

800万件のレコードから1レコードを取得する場合と2万件のレコードから1レコードを取得する場合で適切にインデックスが作成されている場合、論理的には処理時間は1.6倍ほどにしかなりません。



したがって、適切にインデックスを設定することが重要です。
    • good
    • 0

800万くらいになると、それなりに遅いでしょうね。


MySQLの速さの象徴はMyISAMですから、
InnoDBであればよけい時間がかかるでしょう。
トランザクションなどどうしても必要かもしれないので
むりにMyISAMをお勧めしませんが、であればこのさい
中途半端な4.0系じゃなく、4.1や5.0系へのシフトも
検討した方がよいかもしれませんね。

検索スピードを上げるにはまずは、きちんと正規化
することです。検索用のキーにはindexをつけて
おいたり、時系列データなら特定の時期以前の
データはDBをわけて管理するなど地道な設定が
高速化につながると思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。もう一度設計から見直したいと思います。

お礼日時:2006/03/25 11:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!