私たちは、約200万の名前と住所、および300万の関連するサブスクリプションと会議の出席レコードを持つmySQLデータベースの検索結果システムのプロトタイプを作成してきました。
検索が実行され、すべての結果が返される時点で、結果ごとに2番目のクエリを実行して、その人の一意のIDのサブスクリプション/会議を検索します。すべての重要な列にインデックスがあり、個々のクエリはphpMyAdmin(0.0xxx秒)で非常に高速に実行されますが、これをWebページにフィードして表示し(PHP、DataTablesを使用してページング)、ページのレンダリングには数秒かかります。データをLuceneデータベースに移植しようとしましたが、これはLIGHTNINGに似ていますが、ボトルネックは結果を取得するのではなく表示しているようです。
これは、ブラウザでページを作成、提供、レンダリングするオーバーヘッドが原因だと思います。GROUP_CONCATを実行して元のクエリのサブスクリプションコードを取得することで、上記のサブクエリを削除できると思いますが、結果が表示されたページの表示を高速化するにはどうすればよいですか?
私はほとんど考えていませんが、AJAX /サーバーサイドページングを使用したクエリがここに行く方法かもしれません(おそらく50の結果が得られ、クエリが小さく、ページが小さく、より速く提供できます)が、皆さんが提案することを歓迎します持ってる。