WEB アプリケーションでは、大量の静的データをデータベースに保存する必要がありますか、それとも PHP ビジネス層に直接保存する必要がありますか?
MYSQL-PHP-JS アーキテクチャの WEB ゲームなど、大量の静的データを含む WEB アプリケーションには、各レベルに必要な経験値などの比較的静的なデータが大量にあることを意味します、各都市、各プロップの各パラメータなど。これらのデータは通常、バージョンが更新された場合にのみ特定の変更が行われる可能性があります。
データベース (読み取り専用テーブル) に保存されている場合、すべてのビジネスは 1 つ以上のそのような静的データ テーブルをクエリする必要があります。
連想配列の形でPHPビジネス層に直接格納すれば(もちろんEXCEL計画表構造から自動生成されたPHPコードです)、巨大な連想配列の定義や操作もサーバーのPHPファイルの実行効率に影響を与えるようです。
比較して、上記 2 つのオプションのどちらがより効率的ですか?これは、MYSQL 層と PHP 層のどちらに圧力をかけやすいかを言うのと同じです。
十分に明確に説明していないと思われる場合は、返信して説明してください。追加の説明を追加します。
------解決策のアイデア----------------------
たとえば、各レベルup 各都市、各プロップのパラメータなど、必要な経験値。
PHP コードによってアップグレードが完了する場合、何を保存しても問題ありません。
アップグレードがSQL スクリプト コードによって完成します。 はい、もちろん、バックグラウンド実装のためにテーブルとして保存する必要があります
-----ソリューション アイデア------------- -------- -
個人的には、あなたの情報はシステム構成情報に似ていると思います。ボリュームが大きい場合は、データベースに保存し、読みやすいようにキャッシュに保存することをお勧めします
------解決策のアイデア----------- ------- ---
なぜ 2 つのうちの 1 つを選択する必要があるのでしょうか?
データ ソースは mysql に配置されています。メンテナンスでは、ライブラリ内のデータも直接更新されます
次に、プログラムを作成し、静的データの各セットを php スクリプト ファイルにキャッシュします。例: upgrade experience.data.php: 1, 2=> 2)...
使用する必要があります データに到達したら、$Upgrade experience = include 'Upgrade experience.data.php';
複数のファイルに分割して保存し、使用します大量のステートメントを避けるためにどれを読み取るか
データが更新されたら、mysql 内のデータを変更してキャッシュします。ファイルを削除し、プログラムを再実行して
を生成します。 -----解決策---------------------
個人的には、データベースとredisに保存できると思います
通常、redis に値がない場合は、mysql にアクセスして取得します。
mysql の値は php を通じて設定されます。
mysql と redis 間の同期が維持されます (たとえば、mysql が再起動されると redis が更新され、mysql が更新されると redis が更新されます)
これは維持が簡単で、メモリに直接保存できます。アクセス速度も問題ありません
2階と同様、phpコード内に入れるのはオススメできません。 。 。本当に必要な場合は、公開ファイルで定義してください...
作成者が独自に選択します