PHPとMySQLを使用クエリにOR演算子が多すぎる場合、mysqlクエリを最適化する方法はありますか?
FacebookのユーザーIDの配列を取得しました。
今、この配列のアプリケーションで、対応するユーザー名を探したいと思います。
明らかに私のアプリケーションでは、userテーブルに一意のユーザー名と一意のfb_uid値が含まれています。
1)ループを使用してfb_uidの配列を実行すると、ユーザー名を一つずつ見つける:プログラミングOOF
私の基本的な理解では、2つの方法に私を導きました。
OR
2)のようなモンスタークエリを作成fb_uid = VALUE1 OR fb_uid = value2のユーザーからの明確な(ユーザー名)を選択...
ので、うちより良い方法はありますか?
ありがとうございます。代わりに
http://dev.mysql.com/doc/refman/5.0/en/comparison-operators。html#function_in - このリンクによると、MySQLのINの最大値はmax_packet_sizeによってのみ制限されます。だから、あなたがそこにどれくらいの価値を置いているのかは、おそらくかなり大きいかもしれませんが、_how_ largeを見つけるためにテストが必要になるかもしれません。それ以外は、私はあなたの答えが好きです:+1。 – nilamo
私はそれがパフォーマンスにある程度の影響を与えることができると考えていました - それは実際にIN()内にあまりにも多くの値を入れないと思った理由です。しかし、私はそれについてMySQL上のベンチマークをしなかったことを認めなければなりません^^ –