新しいサイトのスケーラビリティに不安がある
-
13-09-2019 - |
質問
次の特徴を持つ Web アプリを構築しています。
- ホーム、お問い合わせ、About、Singup などの少数のページしかありません。
- 各ユーザーには、DOM 要素をドラッグ/ドロップ/操作できる jquery ベースのページが 1 つあります。
- ユーザーが要素の操作を終了したら、「保存」をクリックすると、要素が JSON 経由でサーバー上の PHP スクリプトに送信されます。以前に保存した JSON をロードすることもできます。
つまり本質的には:90% が静的な情報を含むページはほとんどありません。クライアント側の作業と潜在的に大量の JSON の GET/POST を含む 1 ページ。
私は PHP/Smarty、jQuery、mySQL を使用してこれの POC を構築しました。ユーザーの詳細は mySQL に保存され、JSON データも同様に保存されます。Web ページは Smarty によってディスク上にキャッシュされます。
今、スケーラビリティについて考えていますが、明らかな疑問は、頻繁に変更される JSON データを mySQL に保存する必要があるのか、それとも memcacheDB またはその他のキー/値ストアを使用する必要があるのかということです。簡単な mySQL オプションを選択しますか、それとも今すぐキー/値ストアを導入しますか、それともスケールの問題が発生するかどうかを確認するまで待ちますか?現実的に、mySQL がボトルネックになる点に到達することはあるのでしょうか?
まずこれを Slicehost でホストし、必要に応じて移動する予定です。
解決
問題は、これらの値に基づく検索があるかどうかです。データベースレベルで特定の値の更新があるかどうか...文字列全体を取得するだけで、クエリや変更を行う必要がない場合、シリアル化されたデータまたは json は (ストレージに関して) より高速かつ効率的になります。
ただし、拡張方法に応じて、検索目的でフラットなデータ表現とともにキー/値構造を保持することが必要になる場合があります。
また、ベンチマークのために Apache AB を使用し、変更が同時出力にどのような影響を与えるかについてのアイデアを得るのも検討してください。
幸運を :)
他のヒント
JSON に関する限り、違いはありません。そのデータのストレージを最適化する方法がわかりません。質問は要約すると「ユーザーデータはどれくらい複雑ですか?」ということになると思います。RDBMS 外部キーに接続された大規模なソーシャル グラフがあり、そのデータをキーと値のストアにマッピングするのが難しすぎる場合は、今すぐに労力を費やしたくないでしょう。ただし、ユーザー データが単なるフラット プロファイル情報である場合は、RDBMS 機能を使いすぎる前に、後でではなく今すぐにキー/値ストアに移行することをお勧めします。