IN条件で渡されるパラメータの数が多い場合、一時表の作成が最適であることを読んでいます。これは選択クエリ用です。これは更新クエリでも同様ですか? 3つのテーブル結合(内部結合)を使用し、IN条件で1000個のパラメーターを渡す更新クエリがあり、このクエリは200回以上繰り返し実行されます。このクエリを実行するための最良の方法はどれですか?IN MySQLでの更新操作の基準パフォーマンス
0
A
答えて
1
IN
操作は通常遅いです。 1000のパラメータを任意のクエリに渡すことはひどく聞こえる。あなたがそれを避けることができれば、それをしてください。さて、私は本当に一時テーブルを持っています。あなたはテーブルのインデックス付けをすることさえできます。つまり、値を入力するのではなく、検索の最適化に役立つインデックスを使用することです。
一方、インデックスを追加すると、インデックスを追加するよりも処理が遅くなります。そこで経験的テストに行く。他のテーブルを使用する場合は、IN
句を使用する必要はありません。なぜなら、通常はより良いパフォーマンスが得られるEXISTS
節を使用できるからです。 I.E .:
select * from yourTable yt
where exists (
select * from yourTempTable ytt
where yt.id = ytt.id
)
あなたのクエリやデータはわかりませんが、どのようにすればよいかわかります。内部select *
はselect aSingleField
と同じくらい速く、データベースエンジンはそれを最適化するので注意してください。
これはすべて私の考えです。しかし、あなたの問題に最も適していることを100%確信させるためには、両方のテストを実行してタイミングを取るようなものはありません。
関連する問題
- 1. PDO準備文でMySQL IN操作に値を渡す?
- 2. JavaScriptでの更新操作
- 3. .net Windowsアプリケーションのパフォーマンス基準
- 4. HBaseの更新操作
- 5. ADOエンティティフレームワークの更新操作
- 6. のsymfony - 基準にmysqlの()
- 7. WCF操作のパフォーマンスが
- 8. KendoUI MVCグリッドの更新操作
- 9. 頂点の位置を基準としたビューの更新UIScrollView
- 10. 割り当て操作の標準の変更
- 11. F#画像操作のパフォーマンスの問題
- 12. DB2 JDBC、パフォーマンスと操作タイプ
- 13. hadoop擬似分散操作とスタンドアロン操作のパフォーマンス比較
- 14. Hibernateの基準でNOT INクエリをコーディングする方法は?
- 15. 他のテーブルの存在に基づくMySQLの更新
- 16. コンテナADT標準操作
- 17. MySQL LOAD DATA IN FILE単一の列を更新します
- 18. MySQLのパフォーマンスを削除または更新しますか?
- 19. 基準ビルダーSELECT文で新しいオブジェクトを作成
- 20. インサートシーケンスのMySQLの操作
- 21. mySQL:複数のCOUNT()の異なる基準に基づいて
- 22. のMySQL - 更新/ケース
- 23. FTP操作用の標準Javaクラス
- 24. mysqlの速度アップ操作
- 25. MySQL。整数データの操作
- 26. MySqlの文字列操作
- 27. MySqlのMAX()での更新
- 28. CRM 2011操作前の更新関連のエンティティの参照フィールド
- 29. 次の操作でWebページを更新する
- 30. MongoDbでは、アトミック操作の挿入/更新中のコレクション作成ですか?
ヘルプMostyに感謝します。私は間違いなくこれを試さなければならない。 –
ようこそ@エブブ! –