2011-08-21 78 views
0

問題1:一個普通的php變量中可以存儲多少個字符MAXIMUM?例如:$ x =「blablablablabla ....」;變量中的PHP最大字符+ SQL插入優化

問題2:我詢問#1的原因是我想知道在循環結束時執行單行SQL INSERT 10000行還是執行10 000 INSERTS 1在每個循環上行?它有什麼區別或者它是一樣的嗎?

回答

4

問題1是無關緊要的,因爲在達到最大字符串分配之前很久就會出現性能問題。

最終,問題2的答案可能在於一行插入和10,000行插入之間。例如,也許做100行的100個插入將會更快。基準測試以確定每個查詢的最佳行數。

+0

所以沒有一個被接受的一般答案。我會盡量按照你所說的100行插入100行,但我仍然不明白爲什麼。 –

+0

^^他說了什麼,哈哈。在我被告知這個答案之前,我寫了我的,誠實... – DaveRandom

+0

@亞當:的確如此。哪種方法更快將取決於多個因素,如內存和CPU速度(用於級聯),數據庫連接延遲以及可能的磁盤速度。而且,當然,每個查詢的最佳行數將隨着這些因素的變化而發生變化......所以如果您在兩臺不同的機器上開發和部署,它們的表現可能會有所不同。 – cdhowie

2
  1. 受限於memory_limit PHP INI指令。如果你使用最近的PHP版本(> 5.2.0),這是默認的128MB,所以可能比你所能接近的要多。在達到此限制之前,您還會遇到其他問題。這些問題是特定於操作系統的,完全不知道,除非您真的嘗試並執

  2. 這是有爭議的。它取決於一千個因素 - 你的MySQL服務器是如何配置的,它的託管位置(如果它與你的PHP實例位於同一個盒子中,那麼答案會與專用盒子上的不同),在某種程度上,網絡連接,MySQL可用的內存數量等等。如果你想要一個明確的答案,你可能不得不基準每個單獨的託管環境。實際上,答案可能超過1但小於10000.