MySQL 4.1 から、Connector/NET でプリペアド ステートメントが使用できるようになりました。プリペアド ステートメントの使用により、一度以上実行されるクエリの性能が大きく改善されました。
準備された実行は、基本的にクエリの解析が一度だけなので、一度以上実行されるステートメントの実行を、直接実行するより素早く行います。直接実行の場合、クエリは実行のたびに解析されます。準備された実行はまた、実行のたびにパラメータにデータを送るだけで済むので、ネットワークの通信料を減らす効果があります。
プリペアド ステートメントの他の利点は、クライアントとサーバ間のデータ伝達をより効果的にするバイナリ プロトコルを使用していることです。
ステートメントを準備するには、コマンド
オブジェクトを作成し、.CommandText
プロパティをクエリに設定します。
ステートメントを入力した後、MySqlCommand
オブジェクトの .Prepare
メソッドを呼び出します。ステートメントが準備できたら、クエリの各動的要素にパラメータを加えます。
クエリとパラメータを入力した後、.ExecuteNonQuery()
、.ExecuteScalar()
、または
.ExecuteReader
のメソッドを使用してステートメントを実行します。
後続の実行では、パラメータの値を改変し、execute
メソッドを呼び出すだけで済み、.CommandText
プロパティを設定したり、パラメータを定義し直す必要はありません。
Visual Basic 例 :
NotInheritable Public Class MySqlConnection_ Inherits Component_ Implements IDbConnection, ICloneable
C# 例 :
public sealed class MySqlConnection : Component, IDbConnection, ICloneable