現在、グループチャットの開発中です。開発者の協力のために特別に開発されました。私は現在、1つのロビー(チャットルーム)のみを含むシステムから、各ユーザーが独自のロビー(ロビーID付き)を持つことができるように移行中です。私のデータベースをより良く組織するには
それぞれのユーザーにロビーIDを割り当てて、ログイン時に正しいメッセージが読み込まれるようにします。データベース内の特定のロビーの正しいメッセージを表示するために、各メッセージに固有のロビーIDを割り当てます。これは私が現在実装しているものです。各ロビーににそのメッセージを入れて、独自のテーブルを与えるスマートなアイデアであるかどう
しかし、私は思っていた。
そうすれば、代わりに1台20万件のメッセージを持っていることの一日を、彼らは可能性があり多くのテーブル間で分散され、クエリ時間が短縮されます。
提案?
いいえ、しないでください。コンテンツに応じてテーブルを生成しないでください。 –
2つのテーブルを非アクティブロビーに、1つをアクティブロビーにすることができます。ロビーが閉鎖されると、そのメッセージは非アクティブなロビーのメッセージにフラッシュされます。この方法でテーブルをできるだけ小さく保つことができます。 – Mahmoud
もう1つは言った:それをしないでください。あなたのDBは数ヶ月後に混乱し、確実にあなたのワンテーブルにロールバックします。 [Key Partionning](http://dev.mysql.com/doc/refman/5.1/en/partitioning-key.html)は、おそらくパフォーマンスが主な関心事であるかどうかを調査するためのコースです。キーは明らかにあなたのchat_idでなければなりません。実際には、特定のチャットルームでのクエリは(ほとんど)別のテーブルにあるかのように実行されます。 –