10bet网址
MySQL 5.6リファレンスマニュアル
下载本手册
PDF(美国高级主任)- 26.8 mb
PDF (A4)- 26.8 mb


13.2.4处理程序構文

处理程序tbl_name打开[[as]别名)处理程序tbl_nameindex_name{= | <= | >= | < | >} (value1value2,…where_condition[限制……)处理程序tbl_nameindex_name{first | next | prev | last} [wherewhere_condition[限制……)处理程序tbl_name读取{first | next} [wherewhere_condition[限制……)处理程序tbl_name关闭

处理程序ステトメントは,テブルストレジエンジンンタフェスへの直接アクセスを提供します。これは,InnoDBおよびMyISAMテ,ブルに使用できます。

处理程序……开放ステ,トメントはテ,ブルを開き,それを以降の处理程序……读ステ,トメントを使用してアクセス可能にします。このテ,ブルオブジェクトはほかのセッションによって共有されておらず,このセッションが处理程序……关闭を呼び出すか,またはこのセッションが終了するまでクロ,ズされません。エリアスを使用してテブルを開いた場合は,その開かれたテブルへのほかの处理程序ステトメントによるそれ以降の参照は,テブル名ではなくエリアスを使用する必要があります。

最初の处理程序……读構文は,指定された▪▪ンデックスが特定の値を満たし,か▪▪在哪里条件が満たされている行をフェッチします。マルチカラムaapl . aapl .ンデックスがある場合は,aapl .ンデックスカラム値をカンマ区切りリストとして指定します。ンデックス内のすべてのカラムの値を指定するか、またはインデックスカラムの左端のプリフィクスの値を指定します。インデックスmy_idxに,col_acol_b,およびcol_cという名前の3のカラムがその順序で含まれているとします。处理程序ステートメントは,そのインデックス内の3つのすべてのカラム,または左端のプリフィクス内のカラムの値を指定できます。例:

处理程序……读my_idx = (col_a_val col_b_val col_c_val)……处理程序……读取my_idx = (col_a_val,col_b_val)…处理程序……读取my_idx = (col_a_val)…

处理程序インタフェースを使用してテーブルの主键を参照するには,引用符で囲まれた識別子“主”を使用します。

处理程序tbl_name阅读“primary”…

2番目の处理程序……读構文は,在哪里条件に一致する▪▪ンデックス順序でテ▪▪ブルの行をフェッチします。

3番目の处理程序……读構文は,在哪里条件に一致する自然な行順序でテ,ブルの行をフェッチします。これは,フルテ,ブルスキャンが望ましい場合は,处理程序tbl_nameindex_nameより高速です。自然な行順序とは,行がMyISAMテブルデタファル内に格納されている順序のことです。このステ,トメントはInnoDBテ,ブルに対しても機能しますが,個別のデ,タファ,ルが存在しないため,このような概念はありません。

限制句を使用しない場合は,すべての形式の处理程序……读が単一行(使用可能な場合)をフェッチします。特定の行数を返すには,限制句を含めます。その構文は,选择ステ,トメントの場合と同じです。セクション13.2.9 " select構文"を参照してください。

处理程序……关闭は,处理程序……开放でオ,プンされたテ,ブルをクロ,ズします。

通常の选择ステ,トメントの代わりに处理程序

  • 处理程序选择より高速です。

    • 处理程序……开放に対して,指定されたストレ,ジエンジンハンドラオブジェクトが割り当てられます。このオブジェクトは,そのテ,ブルに対する以降の处理程序ステ,トメントに再利用されます。ステ,トメントごとに再初期化する必要はありません。

    • 関連する解析が少なくなります。

    • オプティマザまたはクエリチェックのオバヘッドがありません。

    • ハンドラ▪ンタフェ▪スは(たとえば,ダ,ティ,読み取りが許可されるような)デ,タの整合性のある外観を提供する必要がないため,ストレ,ジエンジンは,选择が通常は許可しない最適化を使用できます。

  • 处理程序によって,ISAMに似た低レベルのMySQL。(キ値格納パラダムを使用するアプリケションを適応させるための代替手段にいては,セクション14.18 " InnoDBとmemcachedの統合"を参照してください。)

  • 处理程序を使用すると,选择では実現が困難な(または,不可能でさえある)方法でデタベスをたどることができます。处理程序インタフェースは,データベースに対話型ユーザーインタフェースを提供するアプリケーションの操作時にデータを調べるためのより自然な方法です。

处理程序は,やや低レベルのステ,トメントです。たとえば,一貫性が提供されません。まり,处理程序……开放はテ,ブルのスナップショットを作成せず,テ,ブルのロックも行いません。これは,处理程序……开放ステートメントが発行されたあと,テーブルデータを(現在のセッションまたはその他のセッションで)変更することができ,これらの変更が处理程序……下一个または处理程序……上一页スキャンに部分的にしか表示されない可能性があることを示します。

開かれたハンドラを閉じ,再度開くようにマ,クすることができます。その場合,このハンドラはテ,ブル内の位置を失います。これは,次の両方の状況が当てはまる場合に発生します。

  • このハンドラのテ,ブルに対して,いずれかのセッションが刷新表またはDDLステ,トメントを実行している。

  • このハンドラを開いているセッションが,テ,ブルを使用する处理程序以外のステ,トメントを実行している。

テ,ブルに対する截断表は,处理程序打开で開かれたそのテ,ブルのすべてのハンドラを閉じます。

刷新表tbl_name带读锁でフラッシュされたテ,ブルが处理程序で開かれた場合,そのハンドラは暗黙的にフラッシュされ,その位置を失います。

处理程序は,パ,ティション化されたテ,ブルではサポ,トされません。