我似乎找不到答案的简单问题。
我正试图从这个大型应用程序中获得更多性能,我想知道将所有 mysql_fetch_array() 函数调用切换为仅使用 MYSQL_ASSOC 是否会有任何不同。 似乎是这样,因为它只创建了一个数组:
$row['field1'] = 'field1-value';
而不是同一字段的数字键和关联键:
$row[0] = 'field1-value';
$row['field1'] = 'field1-value';
最佳答案
在这种情况下,您必须考虑两个普遍存在的概念:-
使用“
MYSQL_ASSOC
”/“MYSQL_BOTH
”的关联索引总是有帮助的,而不是仅仅使用数字索引,因为这些字段可能会在网站的生命周期内发生变化。如果您理解并同意这一点,那么您可以使用“MYSQL_ASSOC
”结果类型,而不是“MYSQL_BOTH
”结果类型。如果您担心返回大型结果集的查询使用了多少内存,那么您可以使用“
mysql_free_result()
”函数。有关此功能的更多详细信息,请参阅 here .但是,所有关联的结果内存都会在脚本执行结束时自动释放。
现在,回到你的问题,我认为从性能的角度来看,使用“MYSQL_ASSOC
”结果类型可能会节省一点服务器内存(网站所在的位置)已被托管,当相关网页正在被 PHP 解析器执行时),但您还必须确保并理解以上几点。
希望对您有所帮助。
关于mysql - 使用 MYSQL_ASSOC 而不是 MYSQL_BOTH 获取 mysql 数组是否会影响性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6936585/