質問: データベースの構造について 一ページに一つコメント機能をつけたいのですが、調べていると、 1.データベースは中身のデータを全て読み込んでから、データを抽出するので、レコードが多くなればなるほど読み込みが遅くなるのではないのでしょうか? 2.例えば、mysqlでページが100万ページでその一つ一つにコメント機能(コメントの最大1000件ほど)をつける場合、テーブルは別々(ぺーじ毎に)に作った方がよいのでしょうか?それとも、テーブル一つに全て書き込ませた方がよいのでしょうか?
回答: 1. そりゃ遅くなります。ただし、すべてのデータを読み込んでいるわけではありません。 2. パーティショニングが必要な場面ではそういうこともあります。 例えば会計年度ごとにパーティショニングするなど。 例にあるのはコメントが100万×1000ものレコードがあるということですよね。 そのテーブルはいかにインデックスを貼ってようが、データ量の問題で、それほどデータがない場合と比較したらパフォーマンスは悪いでしょう。 予め切り分けができるものなら切り分けるのも手です。 想定されるデータの規模によって、どのようにdb設計するかは異なっていきます。 100万ページあることも考えづらいし、それ全部にコメントごときがそのようになるとは考えづらいですが、そういう設計の場面もあり得るということです。 ただの掲示板みたいなので100万あるだろ、ということなら、そういうシステムなら過去ページはアーカイブ化などをして、パフォーマンス劣化を防ぐ手立てを取るはずです。