2011-04-20 45 views
4

我有一個非常簡單的問題。我在MySQL表中一次插入大量記錄。它適用於大約2000條記錄(實際上更多一點)。但是說我想插入3000條記錄,比不做任何事情。PHP在一個SQL查詢中插入的最大數量

我正在通過AS3通過AMFPHP發送一個包含所有記錄的數組到一個簡單的PHP腳本來解析和插入數組。

這是正常的,還是我應該看看它?

目前我在切片2000年記錄的部分我的數組,併發送一對夫婦AMFPHP請求,而不是僅僅1

回答

9

PHP的查詢受限於「max_allowed_pa​​cket」配置選項。它定義了查詢字符串的絕對長度限制,以字符爲單位。請注意,這不僅僅是插入數據的總大小,它是整個查詢字符串。 SQL命令,標點符號,空格等..

檢查你的3000版本記錄是多久與2000年之一,然後讓你的服務器的數據包長度的限制:

SHOW VARIABLES WHERE Variable_name LIKE '%max_allowed_packet%' 

如果你的3000記錄版本超過此限制,查詢將defnitely失敗,因爲它將被斬落在某處中途

+0

謝謝!還要感謝其他評論。我不知道這個,所以謝謝你的信息。 – 2011-04-20 19:44:09

+0

它顯示16777216.它是什麼意思字節,kb或字符長度? – 2016-03-25 09:17:33

3

我不認爲這是真的刀片的數量限制在一個查詢。

取而代之的是一個限制查詢的大小,你可以發送到MySQL
請參見:


所以,基本上,這取決於您在每個insert中擁有的數據量。