10bet网址
MySQL 5.6リファレンスマニュアル
下载本手册
PDF(美国Ltr)- 26.8 mb
PDF (A4)- 26.8 mb
HTML下载(TGZ)- 7.2 mb
HTML下载(Zip)- 7.2 mb


8.5.4 InnoDBテブルの一括デタロド

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

  • InnoDBにデータをインポートする場合,自動コミットモードでは挿入のたびに,ディスクへのログのフラッシュを実行するため,それをオフにします。ンポ,ト操作時に自動コミットを無効にするには,それを,设置自动提交ステトメントと提交ステトメントで囲みます。

    设置自动提交= 0;...SQL导入语句…提交;

    , mysqldumpオプション——选择は,それらを设置自动提交ステトメントと提交ステトメントで囲まなくても,InnoDBテブルに高速に。

  • 副キに独特的制約がある場合,インポートセッション中に一意性チェックを一時的にオフにすることで,テーブルインポートを高速化できます。

    设置unique_checks = 0;...SQL导入语句…设置unique_checks = 1;

    大きいテブルの場合,InnoDBはその挿入バッファーを使用して,セカンダリインデックスレコードを一括して書き込むことができるため,これにより,大量のディスクI / Oが節約されます。デタに重複キが含まれていないことを確認してください。

  • テブルに外键制約がある場合,インポートセッションの間の外部キーチェックをオフにすることで,テーブルインポートを高速化できます。

    设置foreign_key_checks = 0;...SQL导入语句…设置foreign_key_checks = 1;

    大きいテブルの場合,これにより,大量のディスクI/Oを節約できます。

  • 多くの行を挿入する必要がある場合,複数行插入構文を使用して,クラ。

    INSERT INTO yourtable VALUES(1,2),(5,5),…

    このヒントは,InnoDBテブルだけではなく,任意のテブルへの挿入に有効です。

  • 自動邮箱ンクリメントカラムのあるテ邮箱ブルへの一括挿入を実行する場合,innodb_autoinc_lock_modeをデフォルト値の1の代わりに2に設定します。詳細は,セクション14.6.5.2 "構成可能なInnoDBの自動ereplicationンクリメントロック"を参照してください。

  • InnoDB全文econンデックスにデタをロ。

    • テブル作成時に,FTS_DOC_ID_INDEXという一意のンデックスで,型Bigint unsigned,不是nullのカラムFTS_DOC_IDを定義します。例:

      CREATE TABLE t1 (FTS_DOC_ID BIGINT unsigned NOT NULL AUTO_INCREMENT, title varchar(255) NOT NULL DEFAULT ", text mediumtext NOT NULL, PRIMARY KEY (' FTS_DOC_ID '))在t1上创建唯一的FTS_DOC_ID_INDEX (FTS_DOC_ID);
    • テブルにデタをロドします。

    • デタがロドされたら,全文ンデックスを作成します。

    注記

    テブル作成時にFTS_DOC_IDカラムを追加する場合,FTS_DOC_IDは各插入または更新によって単調に増分される必要があるため,全文ンデックス設定されたカラムが更新されたときに,FTS_DOC_IDカラムが更新されることを確認します。テブル作成時にFTS_DOC_IDを追加せず,InnoDBに自動的にdoc idを管理させるようにした場合,InnoDBは次の创建全文索引呼び出しで,FTS_DOC_IDを非表示カラムとして追加します。ただし,このアプロチでは,パフォブルの再構築が必要になります。