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

MYSQL:ユーザー-プロファイルの詳細テーブルの設定-ベストプラクティス

    アプローチで考慮すべきこと

    ユーザープロファイルをユーザーテーブルに保存する

    • ここには冗長なデータがたくさんある場合がありますが(情報が含まれていない可能性がある列)、これは通常、プロファイルデータを取得するという点で最速のアプローチになります。
    • クイック(特に、データベースから必要な列のみをプルする場合)
    • 無駄なデータ
    • 操作/保守がより困難(おそらくPHPMyAdminなどのインターフェイスを使用)

    User_Profileにユーザープロファイルを保存する表1-1ユーザーとの関係

    • 結合はまだ非常に高速である必要があり、ユーザーが入力しない限りユーザープロファイルが作成されない場合は、データの冗長性を排除できます。
    • 操作が簡単
    • 参加(または2番目のクエリ)のために少し遅くなります

    ユーザープロファイルをプロパティおよび値としてテーブルに保存する

    *つまり可能なオプションを格納するテーブル、user_id、option_id、およびvalueを格納するテーブル*

    • 冗長なデータは保存されていません。すべてのデータが関連しています
    • 最も正規化された方法
    • データの取得と更新が遅い

    私の印象では、ほとんどのWebサイトは2番目の方法を使用し、プロファイル情報を2番目のテーブルに格納します。これは、ほとんどの大規模なWebサイトがデータベース(twitter、facebook)を非正規化して、書き込みパフォーマンスを低下させながら読み取りパフォーマンスを向上させるのが一般的です。

    50,000件のレコードを表示している場合は、プロファイル情報を2番目のテーブルに保持することが道のりだと思います。最適なパフォーマンスを得るには、キャッシュが効果的に機能するように、大量に書き込まれるデータと大量に読み取られるデータを分離しておく必要があります。



    1. MariaDBでのTAN()のしくみ

    2. WAMP Server V 2.5アイコンはオレンジ色で、応答せず、メニューもありません

    3. すべてのUTF8文字を最も標準的な形式に正規化する

    4. 各患者によって予約されている医師の数を数える方法は?