カーソルの使用について人々が悪いと言っているのをいつも聞いていましたが、これは特に Microsoft SQL Server で非常に遅いためです。
これは、MySQL の Cursors にも当てはまりますか? MySQL のカーソルもパフォーマンスを低下させますか? MySQL でのカーソルの使用法についてアドバイスをいただけますか?
カーソルの使用について人々が悪いと言っているのをいつも聞いていましたが、これは特に Microsoft SQL Server で非常に遅いためです。
これは、MySQL の Cursors にも当てはまりますか? MySQL のカーソルもパフォーマンスを低下させますか? MySQL でのカーソルの使用法についてアドバイスをいただけますか?
最新のデータベース (MySQL を含む) のほとんどは、セット ベースの操作を実行するように設計されています。カーソルの問題は、行ベース (または手続き型) の操作を実行することです。このため、最新の DBMS ではカーソルなしで実行できるジョブを実行するためにカーソルを使用すると、ほとんどの場合、パフォーマンス ヒットが発生します。
この記事を見てください。これは、2つをうまく処理しています。SQL Server を念頭に置いて書かれていますが、ほとんどの概念が適用されます。
一時テーブルを作成して入力するだけです。とにかく、ほとんどの RDBMS がカーソルを実装する方法です。
カーソルは本質的に反復的です。データベースの種類に関係なく、カーソルは確実に遅くなります。したがって、それらを回避するためにあらゆることを行い、SQL クエリを使用して解決策を見つけようとする必要があります。ただし、これらはクエリで解決できない問題のために存在するため、絶対に必要な場合にのみ使用してください。