sql >> データベース >  >> RDS >> Mysql

非常に多くのレコードをMySqlデータベースにできるだけ速く挿入する方法

    バルクインサートを最適化する方法はいくつかあります。いくつかは:

    • LOAD DATA INFILEラッパーAPIがあります。 NET 。これが最速の方法ですが、単純な挿入とはいくつかの制限と意味上の違いがあります。

    • 複数行のINSERT ステートメント:

      INSERT INTO temperature (temperature) VALUES (1.0), (2.0), (3.0), ...

      一度に20.000.000行を挿入するべきではありませんが、非常に大幅な高速化のために1.000-10.000を試してみることをお勧めします。これは、速度を上げるためのシンプルで非常に問題のない方法です。多くの場合、10倍、場合によってはそれ以上の係数が可能です。

    • テーブルをロックする(LOCK TABLES

    • インデックスを一時的に無効にします。

    • MySQLオプションの調整。

    • INSERT DELAYED (ここではあまり役に立たない可能性があります)。

    ドキュメントには、より詳細な詳細 が記載されています。 オプションについて。一部のオプションはテーブルタイプによって異なります( InnoDB MyISAM 。

    一般的な提案:VALUESの前に挿入する列を常に指定してください 。これにより、コードの保守が容易になります。



    1. Doctrine 2mysqlFIELD関数を順番に

    2. PHPMySQLGoogleチャートJSON-完全な例

    3. LIMITを使用してMySQLテーブルから平均を選択します

    4. SQL_NO_CACHEを使用する場合