mysql - 使用 MYSQL_ASSOC 而不是 MYSQL_BOTH 获取 mysql 数组是否会影响性能

标签 mysql arrays performance

我似乎找不到答案的简单问题。

我正试图从这个大型应用程序中获得更多性能,我想知道将所有 mysql_fetch_array() 函数调用切换为仅使用 MYSQL_ASSOC 是否会有任何不同。 似乎是这样,因为它只创建了一个数组:

$row['field1'] = 'field1-value';

而不是同一字段的数字键和关联键:

$row[0] = 'field1-value';
$row['field1'] = 'field1-value';

最佳答案

在这种情况下,您必须考虑两个普遍存在的概念:-

  1. 使用“MYSQL_ASSOC”/“MYSQL_BOTH”的关联索引总是有帮助的,而不是仅仅使用数字索引,因为这些字段可能会在网站的生命周期内发生变化。如果您理解并同意这一点,那么您可以使用“MYSQL_ASSOC”结果类型,而不是“MYSQL_BOTH”结果类型。

  2. 如果您担心返回大型结果集的查询使用了多少内存,那么您可以使用“mysql_free_result()”函数。有关此功能的更多详细信息,请参阅 here .但是,所有关联的结果内存都会在脚本执行结束时自动释放。

现在,回到你的问题,我认为从性能的角度来看,使用“MYSQL_ASSOC”结果类型可能会节省一点服务器内存(网站所在的位置)已被托管,当相关网页正在被 PHP 解析器执行时),但您还必须确保并理解以上几点。

希望对您有所帮助。

关于mysql - 使用 MYSQL_ASSOC 而不是 MYSQL_BOTH 获取 mysql 数组是否会影响性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6936585/

相关文章:

python - 计算重复平均 python

如果条件满足,PHP mysql更新并插入

mysql - 如何配置Mysql以避免错误: Illegal mix of collations

mysql - 关于唯一索引的说法不正确的是

Javascript - 如何访问这个字符串数组中的单词?

performance - Redis 读取性能慢

php - 如果title_es为空,MYsql想要获取title_en

java - 如何更改数组列表中对象的属性?

android - 如何设置 webview 的滚动性能?

c# - EWS : Exchange Web Service. 多次调用 ResolveName - 性能命中(当然)