1

私はクライアント リクエストがある PHP でバックエンド コードを書いています。何千ものユーザーの中で優先度に基づいてユーザーのコレクションを表示する必要があります。

私の問題は次のとおりです。クエリが重すぎて多くの内部結合と比較が必要なため、コードが非常に遅くなり、応答に多くの時間がかかります。

要求と応答時間に影響を与えることなく、すべてのユーザーを蓄積し、すべてのクエリと計算を実行できる方法を提案できますか?

4

3 に答える 3

1

多くのクエリを実行すると、JOINSパフォーマンスCONDITIONSに影響しますが、データベースの設計が適切である限り、最小限に抑えられます(データベースの正規化)。コードのパフォーマンスに主に影響するのは、クエリで使用されるテーブルのサイズ(レコード数)ですが、クエリの最適化に役立つINDEXESインデックスの使用方法)やその他のツールもあります。

個人的には、カプセル化を適用するストアドプロシージャをクエリで使用することをお勧めします。そして、実装ごとに、を回避するのに役立ちますSQL Injection

于 2012-11-29T10:33:23.087 に答える
0

Mysql ビューを使用して、複雑なクエリと長時間を回避します。

于 2012-11-29T12:16:49.410 に答える
0

具体化されたビューと呼ばれる手法を試すことができます。つまり、集計を含むいくつかのテーブルに対して事前計算を行い、集計を使用してオンライン クエリを高速化します。一方、計算の基にしているデータが頻繁に変更される場合、この手法はあまり役に立ちません。

この件に関する詳細については、こちらをご覧ください: http://www.fromdual.com/mysql-materialized-views

于 2012-11-29T10:20:07.340 に答える