ホームページ >バックエンド開発 >PHPチュートリアル >テーブルを相関させる場合、各クエリの後に条件を追加するのと、すべての関連付けが完了してから条件を追加するのはどちらが速いですか?

テーブルを相関させる場合、各クエリの後に条件を追加するのと、すべての関連付けが完了してから条件を追加するのはどちらが速いですか?

WBOY
WBOYオリジナル
2016-06-23 13:16:281433ブラウズ

例1:CONTACT_CARDからCONTACT_CARDから[CONTACT_CARD]を選択します。内部結合contact_card_extend as b on c.uuid = b.uuidおよびc.uuid = 'ax61t09bpcmmhsxisvbav1mdb 71jzwt3'およびc.status = 'アクティブ' 。










ディスカッションへの返信(解決策)

この 2 つは同じです

。ただし、c.uuid= 'AX61t09bpcmmhsXISvbAv1mdb71JZwt3' および c. status='active' には何もありません接続を処理します

どちらも同じですが、c.uuid='AX61t09bpcmmhsXISvbAv1mdb71JZwt3' AND c.status ='active' は接続とは何の関係もないため、通常は後者として記述されます 以上です

ビッグデータに関する限り、理論的には前者の方が速いかどうかはわかりません。前者は最初のクエリの結果を通じて関連付けられており、最初のクエリはすでにフィルターされているため、前者の方が速いはずです。 2 番目のステップですべてのクエリが関連付けられた後、条件付きフィルタリングを実行します。そうだと思うのですがまだ試していないので質問させていただきました。

それは単なる想像です
データベースには、結合コマンドを解析するために特別に使用されるプロセスがあります。解析中に、接続に関係のない式が削除され、where 句に配置されます

メインテーブルのみが必要な場合。条件レコードがクエリに含まれていることに準拠するには、子を使用してクエリを実行する必要があります

Select*from control_card where uuid = 'ax61t09bpcmmhsxisv1mdb71jzwt3' And Status) AS C

s Nner join contact_card_extend as b on c.uuid = b.uuid
INNER JOIN contact_card_vcardinfo AS info ON c.uuid=info.card_id


教訓を学びました、ありがとう、素晴らしい神様!エラーは修正されました!
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。