sql >> データベース >  >> RDS >> Mysql

Facebookのようなメッセージングシステムのデータベースの正規化

    そうです、そのような大きなテーブルは使えません。システムを維持する実際のメッセージが必要な場合は、NoSQLソリューション(HBase、Cassandra、MongoDBなど)をよく見てください。リレーショナルデータベースについて知っていることはすべて忘れる必要があります。

    ただし、MySQLを使用すると、テーブルを非常に小さな部分に分割した場合でも、スケーラブルな処理を実行できます。 1つのテーブルに最大1,000ユーザーのメッセージを保持させます(両方のユーザーが同じテーブルに属していない限り、すべてのメッセージを2回書き込む必要があります)。さらに、1つのDBに保持するテーブルは1,000個以下であり、この制限に達したときに別のテーブルを自動作成します。複数のデータベース(1つの物理サーバー上にある場合でも)があると、現在のサーバーが過負荷になったときにDBAがそれぞれを新しいサーバーに簡単に転送できます。特定のユーザーのメッセージを取得するには、コードは、作成するマップから必要なDB/テーブルを取得する必要があります。




    1. mysqlblobに保存されている画像を表示する

    2. SQLで2つの列でグループ化する方法

    3. 一部のフィールドに関連性を高め、mysql全文検索で関連性で並べ替えます

    4. 複数の1対1を作成する方法