複数テーブルの結合クエリ、サブクエリ、条件付きクエリ、ソート
リーリー関連データシート:
csp_car_brand
、車両ブランド テーブル:
csp_car_type
、車両タイプ テーブル:
csp_car_source
、車両ソース テーブル:
csp_car_model
、車両モデル テーブル (ブランドの特定のモデル):
#csp_car
、車両テーブル (このテーブルにはフィールドが多すぎるため、一部のみがリストされています)
csp_auction_record
、オークション記録テーブル:
この SQL ステートメントにはパフォーマンス上の問題がありますか? ?最適化するにはどうすればよいですか? ? PHP を使用して単純な SQL ステートメントに分割し、結果を結合する必要がありますか? ?
これを質問したということは、SQL に問題があることがわかっていることを意味します。問題は、csp_auction_car テーブル内のレコードの数と同じだけ csp_auction_record テーブルがスキャンされることです。考えると恐ろしいですが、このように書くのが好きな人はたくさんいます。また、サブクエリに where 条件を記述するようにすると、ac テーブルのデータ量が大幅に削減され、その後の関連付けが高速になります。
リーリー次のように変更できます。csp_auction_record テーブルは 1 回だけスキャンされます