は、私は、ユーザーに通知するには、以下のこれをしたいが、私は品質とスロークエリについて確認していない:sqlでグループチャットの通知を設計するには?
誰かが意志select all members of group
チャットして、各ユーザーのループで、それは意志insert
user_id group_id unseen_message_count
SQLチャットグループに新しいメッセージを挿入それはチャット中の各メッセージのためにはあまりにも重すぎます。なぜなら、いつも人々が本当に速く書いて、各メッセージに対してこれをやっているからです。
アップデートバージョン
私のSQLは以下のようなものです:
chat_seen table
user_id | group_id | unseen_count
新しいチャットinserted
は、私は、彼らがunseen_count
を見ると意志update unseen_count for each user
、その後、私はupdate unseen_count to 0
でしょう、私がしなければ重いだと思います.Iときこれはグループの各メンバーのために、そうではありませんか?
通知用のメモリストアを使用する、通知用のメッセージキューを使用する、データをポーリングする代わりにソケットを使用する(更新をプッシュするだけで済みます)、アクションを非同期に(非同期に)実行できる他のソリューションユーザーは – JimL
メッセージキューは、このようなアプリケーションのデータベースよりも優れています。 SQLは、pub/subファンアウトシステムとFIFOキューを作るのは本当にひどいです。 – tadman
@JimL通知用のメモリストアが混乱していますか?通知のためにFacebookのデータベースを使用していると聞いていますか?チャットシステムにfacebookのチャット通知の機能がすべて含まれているためですか? – Bucky