5

かなり簡単な質問があります。MySQL テーブルに一度に多数のレコードを挿入しています。約 2000 レコード (実際にはもう少し多い) で機能します。しかし、何もしないよりも、3000 レコードを挿入したいとします。

AS3 を使用して、AMFPHP を介してすべてのレコードを含む配列を単純な PHP スクリプトに送信し、配列を解析して挿入します。

これは正常ですか、それとも調べる必要がありますか?

現在、配列を 2000 レコードの一部にスライスし、1 つではなく 2 つの AMFPHP リクエストを送信しています。

4

4 に答える 4

11

PHP のクエリは、「max_allowed_pa​​cket」構成オプションによって制限されます。クエリ文字列の絶対的な長さの制限を文字数で定義します。これは、挿入されるデータの合計サイズだけでなく、クエリ文字列全体であることに注意してください。SQL コマンド、句読点、スペースなど...

3000 レコード バージョンと 2000 レコード バージョンの長さを確認し、サーバーのパケット長制限を取得します。

SHOW VARIABLES WHERE Variable_name LIKE  '%max_allowed_packet%'

3000 レコードのバージョンがこの制限よりも長い場合、途中で切り捨てられるため、クエリは確実に失敗します。

于 2011-04-20T18:53:03.090 に答える
3

1 つのクエリでの挿入数に実際に制限があるとは思いません。

代わりに、MySQL に送信できる クエリのサイズに制限があります


したがって、基本的に、これはそれぞれのデータの量に依存しますinsert

于 2011-04-20T18:52:48.637 に答える
2

max_allowed_packetPHP SQLクエリよりも大きいことを確認します。

http://dev.mysql.com/doc/refman/5.5/en/packet-to-large.html

于 2011-04-20T18:56:03.520 に答える
0

PHPは、挿入されるクエリの量を一度に制限するのではなく、スクリプトが使用できるメモリ使用量と実行の最大時間を制限すると思います。

于 2011-04-20T18:57:51.167 に答える