2011-08-21 75 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.