Windows Azureを使用してモバイルソーシャルネットワークのサーバーバックエンドを構築しています。Azureテーブルでの非正規化チャットメッセージ
私はこれらの3つの事業体があります。
- ユーザー - SQLでストアド - SQL Azureの
- スレッド(その後、お互いにメッセージを送信することができます2ユーザー間の関係の一種)に格納しますAzureの
- メッセージ - Azureのテーブル
私はスレッドIDで仕切らAzureのテーブル内のメッセージを保存したように保存されているが私は良いパフォーマンスを期待しますチャット(スレッド間のメッセージの送受信)。
しかし、最新のスレッドの一覧をユーザーに提供できるようにする必要があります(最近のメッセージには最新のメッセージが含まれています)。言い換えれば、最後のメッセージ日付までにスレッドを表示する必要があります。
多くの異なるテーブルパーティションをスキャンしてメッセージを探すことは、明らかにパフォーマンスを低下させることになります。そのため、最新のスレッドを効率的にフェッチできるように、データを他のテーブルパーティションに非正規化する必要があります。
あなたの経験に基づいた戦略は何ですか?
こんにちは、Igorekと答えに感謝!私が解決策で見る問題は、ユーザーがスレッドにメッセージを投稿するたびにスレッドテーブルの会話タイムスタンプを更新するためにSQL Azureを照会する必要があることです。 Azureテーブルを使用することの利点をどれだけ相殺するか - スケーラビリティ... –
合意。私は私の主な応答 – Igorek
Igorek、答えを更新していただきありがとうございます編集しています。それに基づいて、私は非常によく似た何かを実装しました。うまくいきました。しかし、私はFlorinDumitrescu(http://social.msdn.microsoft.com/Forums/en-US/windowsazuredata/thread/6a745a22-540a-44d5-b426-d42dd8510da5)とのディスカッションを見つけ、以前の "テーブル「もっとスケーラブルな」世界観。だから私はそれをgoogleに行き、最終的にそれについて新しい議論を始めるつもりです... –