階層化されたWebアプリを開発しています。簡単に言えば、それは:
UI:html、javascript、jquery
ドメインロジック:Javaとサーブレット
ビジネスロジック:MySQL
データベースには、本に関する情報を含む大量のレコードがあります。さらに、アプリケーションは同時に多くのユーザーによって使用されます。ユーザーが検索テキストフィールドに本の「名前」、たとえば「book1」を入力し、jqueryオートコンプリートを使用してドロップダウンリストを表示できるようにしたい。
データベース内のレコードは変更されないため、更新できません。
堅実なデザインパターンを検討すると、どちらが優れているか(パフォーマンスと速度の面で):
これらのデータベースレコードをドメインロジックのキャッシュオブジェクトにプリロードし、ユーザーがこのオブジェクトからそれらを検索(クエリ)できるようにしますか?または、MySQL全文検索などを使用してデータベースから直接クエリを実行しますか?
MySQL全文検索を使用している場合、同時に多くのユーザーがデータベースを大量に呼び出すことを心配しています。キャッシュオブジェクトへのプリロードに関しては、これが一般的に良いソフトウェアプラクティスであるかどうかはわかりませんが、誰かがそれをお勧めしますか?レコードをメモリにキャッシュしたままにするためのタイマーを設定する必要がありますか?
これらの2つの方法のどちらが好ましいですか?そのようなシナリオのための他のより良い方法はありますか?