- 締切済み
800万件のデータ
現在MySQLの4.0.17を使用しています。今度新しくデータベースを作成し、親テーブルと子テーブルを外部キーによって連結しています。また両方のテーブルともInnoDBで作成しています。 ここで質問なのですが、親テーブルのデータ量が800万件ぐらいになりそうなのですが、このような大きなデータベースを扱ったことがありません。どのような点に気をつけていればよいのでしょうか?また、2万件ぐらいのデータベースと比較した場合、やっぱり選択クエリの速度なども劇的に遅くなるものなのでしょうか? 素人の質問で申し訳ありませんがよろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- passepied
- ベストアンサー率50% (18/36)
回答No.2
800万件のレコードから1レコードを取得する場合と2万件のレコードから1レコードを取得する場合で適切にインデックスが作成されている場合、論理的には処理時間は1.6倍ほどにしかなりません。 したがって、適切にインデックスを設定することが重要です。
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.1
800万くらいになると、それなりに遅いでしょうね。 MySQLの速さの象徴はMyISAMですから、 InnoDBであればよけい時間がかかるでしょう。 トランザクションなどどうしても必要かもしれないので むりにMyISAMをお勧めしませんが、であればこのさい 中途半端な4.0系じゃなく、4.1や5.0系へのシフトも 検討した方がよいかもしれませんね。 検索スピードを上げるにはまずは、きちんと正規化 することです。検索用のキーにはindexをつけて おいたり、時系列データなら特定の時期以前の データはDBをわけて管理するなど地道な設定が 高速化につながると思います。
お礼
ありがとうございました。もう一度設計から見直したいと思います。