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


8.6.2 MyISAMテ,ブルの一括デ,タロ,ド

これらのパフォ,マンスのヒントは,セクション8.2.2.1 " insertステトメントの速度"の高速挿入の一般的なガ▪▪ドラ▪▪ンを補足するものです。

  • 複数のクラアントが大量の行を挿入する場合のパフォマンスを向上するには,插入延迟ステ,トメントを使用します。セクション13.2.5.2 "插入延迟構文"を参照してください。この技法は,MyISAMおよびその他の一部のストレ,ジエンジンには有効ですが,InnoDBには機能しません。

    注記

    MySQL 5.6.6現在,插入延迟は非推奨であり,将来のリリ,スで削除されます。代わりに插入延迟を付けない)を使用してください。

  • MyISAMテ,ブルでは,デ,タファ,选择ステ,トメントの実行中に同時に,同時挿入を使用して行を追加できます。セクション8.10.3“同時挿入”を参照してください。

  • 少しの追加作業で,MyISAMテブルに多数のンデックスがある場合に,テブルの加载数据文件の実行をさらに高速化できます。次の手順を使用します。

    1. 刷新表ステ,トメントまたはmysqladmin刷新表コマンドを実行します。

    2. テブルのンデックスのすべての使用を削除するには,Myisamchk——keys-used=0 -rq/ / db / tbl_name /路径を使用します。

    3. 加载数据文件を使用して,テ,ブルにデ,タを挿入します。これはesc escンデックスを更新しないため,非常に高速です。

    4. 今後,テ,ブルから読み取りだけをする場合は,myisampackを使用してそれを圧縮します。セクション15.2.3.3 "圧縮テブルの特徴"を参照してください。

    5. myisamchk rq/ / db / tbl_name /路径を使用して@ @ンデックスを再作成します。これにより,ディスクに書き込む前にメモリー内にインデックスツリーを作成し,大量のディスクシークを回避するため,加载数据文件時の@ @ンデックスの更新よりかなり高速になります。結果のンデックスリは完全にバランスも取れています。

    6. 刷新表ステ,トメントまたはmysqladmin刷新表コマンドを実行します。

    デ,タを挿入するMyISAMテ,ブルが空の場合は,加载数据文件は先述の最適化を自動的に実行します。自動の最適化と明示的に手順を使用することの主な違いは,サ,バ,に加载数据文件ステ,,myisamchkでは▪▪ンデックスの作成のためにはるかに多くの一時メモリ▪▪を割り当てることができることです。

    myisamchkの代わりに次のステ,トメントを使用して,MyISAMテブルの一意でないンデックスを無効または有効にすることもできます。これらのステ,トメントを使用すると,刷新表操作をスキップできます。

    ALTER TABLEtbl_name禁用键;ALTER TABLEtbl_name使键;
  • 非トランザクションテ,ブルに対して,複数ステ,トメントで実行される插入操作を高速化するには,テ,ブルをロックします。

    锁表写入;INSERT INTO a VALUES (1,23),(2,34),(4,33);INSERT INTO a VALUES (8,26),(6,29);...打开表;

    これは,すべての插入ステートメントの完了後に,インデックスバッファーが1回だけディスクにフラッシュされるため,パフォーマンスにメリットがあります。通常は,插入ステ,トメントの数と同じだけ;すべての行を1の插入で挿入できる場合は,明示的なロックステ,トメントは必要ありません。

    ロックは複数接続テストの合計時間も短縮しますが,個々の接続がロックを待機するため,それらの最大待機時間は長くなることがあります。次のように5台のクラescアントが同時に挿入の実行を試みるとします。

    • 接続1は1000回の挿入を実行します

    • 接続2,3,および4は1回の挿入を実行します

    • 接続5は1000回の挿入を実行します

    ロックを使用しない場合,接続2,3,および4は1と5の前に終了します。ロックを使用した場合,接続2,3,および4は1または5の前に終了しない可能性がありますが,合計時間は約40%高速化するはずです。

    MySQLでは,插入更新,および删除操作はきわめて高速ですが,約5回超の連続した挿入や更新を実行するすべての操作の周囲にロックを追加することによって,全体のパフォーマンスを向上できます。著しく多くの連続した挿入を実行する場合,锁表のあとにときどき(1000行程度ごとに)打开表を実行して,ほかのスレッドのテ,ブルへのアクセスを許可できます。これによってもパフォ,マンスの向上が得られます。

    上記の戦略を使用した場合でも,デ,タのロ,ドには加载数据文件より插入の方がはるかに遅くなります。

  • MyISAMテ,ブルの加载数据文件插入の両方に対してパフォ,マンスを向上するには,key_buffer_sizeシステム変数を増やして,キ,キャッシュを拡張します。セクション8.11.2 "サ,バ,パラメ,タのチュ,ニング"を参照してください。