2016-04-28 17 views
0

たとえば、Table1のように、mySQLテーブルに複数の挿入を行う必要がありますが、数値は1000を超えている可能性がありますので、挿入制限があるかどうかを知りたいmySQL?また、この制限がサーバーごとに異なる場合は、バッチインサート制限mySQL PHP

+0

実行時間とメモリはバルクエントリに影響を与えるサーバーに依存しますが、コードと.htaccessファイルから設定することができます – abhayendra

+0

実行時間は問題ではありません。挿入に制限があるかどうかを知りたいので書き込みできます私のスクリプトはそれを念頭に置いておくので、将来は役に立たないことはありません。 –

答えて

0

google max_allowed_pa​​cket。あなたの記憶が許す限り高く設定してください。 ($ YourQueryString)< =この制限strlenを場合、私はPHPスクリプトのスループットを最大化したかったので、私は行を収集し、私はのmax_allowed_pa​​cketを打つまで、彼らはstrlenを数え、その後、送信後、あなたは、例えば

にそれを送信するOKですそれ。サイクル中。行数を制限するよりはるかに高速でした。

1

ここでの主な制限要因は、MySQLが受け入れるステートメントの期間です。これはシステム変数max_allowed_packetで定義されています。

my.cnfファイルまたはこれと同等のファイルを1GBに設定すると、通常は問題ありません。それ以外のものは馬鹿げていますが、それに対応するためのメモリがあれば自由に増やすことができます。クライアントとサーバーの両方でこのことが必要になることが多いことを覚えておいてください。これが同じマシン上にある場合、理論上は2GBが必要です。ここであまりにも狂ってはいけない。

複数のVALUESエントリを持つ文は、そのパケットサイズに収まるように多くのデータをロードできます。

非常に大きなインポートを行っている場合は、LOAD DATA INFILEの方がずっと速いことがよくありますが、データを対応できる形式で準備する必要があります。 CSVファイルは通常、ここで作業するのが最も簡単です。