1

私が作成しているウェブサイトには「イベント」があります。イベントには、タイトル、日付、および関係者のユーザーIDがあります。イベントは、誰かをフォローしたり、新しい投稿を作成したりすることなど、何でもかまいません。すべてのイベントを1つのテーブルに保存することを考えていましたが、これが非常に急速に大きくなることがわかりました。

私はそれを正しくやっていますか?たとえば、特定のユーザーに関連するイベントをテーブルで検索する必要がある場合、システムの料金はどれほどひどいものになりますか?どういうわけかそれを最適化できますか?

4

3 に答える 3

1

WHERE 句で最も頻繁に使用する列にインデックスを追加します。たとえば、特定のユーザーに関連するすべてのイベントを頻繁に選択する場合は、user_id 列にインデックスを作成する必要があります。

http://www.postgresql.org/docs/9.1/static/sql-createindex.html

于 2012-06-16T03:54:11.283 に答える
0

そのテーブルのデータが正規化されている限り、問題はありません。そのテーブルに対する読み取りクエリの速度が低下することがわかった場合は、一部の列にインデックスを追加できますが、これによりそのテーブルへの書き込みが遅くなることに注意してください。

パフォーマンスが遅すぎることがわかった場合は、大きなテーブル用に最適化されたNoSQLデータベースの使用に切り替えることができます。

于 2012-06-16T04:01:57.883 に答える