問題はこのようになります。MySQLの一時テーブルvsどこの部分で
テーブルUser
から*
を取得する必要があります。ここで、カラムphoneNumber
はphoneNumberArray
です。約300〜1000の電話番号があります。テーブルUser
にはphoneNumberにインデックスがあり、数百万の行を含むことができます。
一時テーブルUserphoneNumbers
を作成し、すべての電話番号を挿入し、JOIN
を行うか、単純なWHERE IN
を使用し、1000の電話番号の配列を渡す方が良いでしょうか?
実行計画と統計を見てみると、私はテンポラリテーブルを使用する方がビルのコストが高くなり、テーブルにデータを入れることになると思います。 – dbajtr
クエリ、データ、またはその両方を表示できますか? –
電話番号の一時テーブルを作成するのは、問い合わせ頻度が低く、電話番号リストが静的な場合に最適です。 電話番号リストが動的な場合は、WHERE INを使用してテーブルの作成と削除時間を短縮する方が良いです。 – BRjava