データの読み込みを高速化したい。
MySQL 5.5、InnoDBを使用しており、100万行のデータ(65Mbファイル)があります。5分かかります。
InnoDBのLOADDATAINFILEの速度に影響を与えるmysqlの設定とコマンドは何ですか?
ありがとうございました。
データの読み込みを高速化したい。
MySQL 5.5、InnoDBを使用しており、100万行のデータ(65Mbファイル)があります。5分かかります。
InnoDBのLOADDATAINFILEの速度に影響を与えるmysqlの設定とコマンドは何ですか?
ありがとうございました。
読み込み時間を改善するには、次の設定をお勧めします。
設定以外に、自分でできることがいくつかあります。
インデックスとトリガーを削除してみてください。ロード後に再作成できます。また、デフォルトの代わりに my-huge.cnf の高負荷設定を使用することも検討してください。
その他の innodb パフォーマンス設定:
http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/
これはまさにあなたが探しているものではないかもしれませんが、私が過去に使用したトリックです
ALTER TABLE TABLE_NAME DISABLE KEYS;
LOAD DATA INFILE ... ;
ALTER TABLE TABLE_NAME ENABLE KEYS;
それが役に立てば幸い。
ライブ テーブルの内容を置き換えるために急いでいる場合は、代わりに次のようにします。
CREATE TABLE new LIKE live;
LOAD DATA ... INTO new;
RENAME TABLE live TO old, new TO live;
DROP TABLE old;
はRENAME
「瞬間的」かつアトミックであるため、テーブルのサイズに関係なく「決して」ダウンすることはありません。
(したがって、高速化についてそれほど心配する必要はありませんLOAD
。)
また、可能であれば、バイナリ ログが無効になっていることを確認してください。