Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用mysql\u ASSOC而不是mysql\u获取mysql数组是否都会影响性能_Mysql_Arrays_Performance - Fatal编程技术网

使用mysql\u ASSOC而不是mysql\u获取mysql数组是否都会影响性能

使用mysql\u ASSOC而不是mysql\u获取mysql数组是否都会影响性能,mysql,arrays,performance,Mysql,Arrays,Performance,这个简单的问题我似乎找不到答案 我试图从这个大型应用程序中挤出更多的性能,我想知道将所有mysql\u fetch\u数组函数调用切换为仅使用mysql\u ASSOC是否会有任何不同。 看起来是这样的,因为它正在创建一个数组,其中只包含: $row['field1'] = 'field1-value'; 代替同一字段的数字键和关联键: $row[0] = 'field1-value'; $row['field1'] = 'field1-value'; 在这种情况下,有两个普遍的概念,您必须

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

我试图从这个大型应用程序中挤出更多的性能,我想知道将所有mysql\u fetch\u数组函数调用切换为仅使用mysql\u ASSOC是否会有任何不同。 看起来是这样的,因为它正在创建一个数组,其中只包含:

$row['field1'] = 'field1-value';
代替同一字段的数字键和关联键:

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

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

使用MYSQL\u ASSOC/MYSQL\u两者的关联索引总是很有帮助的,而不仅仅是使用数字索引,因为字段的顺序在网站的生命周期中可能会发生变化。如果您理解并同意这一点,那么您可以使用MYSQL\u ASSOC结果类型,而不是MYSQL\u BOTH结果类型

若您关心返回大型结果集的查询使用了多少内存,那个么可以使用函数。有关此功能的更多详细信息,请参见。但是,在脚本执行结束时,会自动释放所有关联的结果内存

现在,回到您的问题,我认为从性能的角度来看,当PHP解析器执行相关网页时,使用MYSQL_ASSOC result type可能会节省网站所在服务器的一点内存,但您还必须确保并理解以上几点


希望能有所帮助。

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

使用MYSQL\u ASSOC/MYSQL\u两者的关联索引总是很有帮助的,而不仅仅是使用数字索引,因为字段的顺序在网站的生命周期中可能会发生变化。如果您理解并同意这一点,那么您可以使用MYSQL\u ASSOC结果类型,而不是MYSQL\u BOTH结果类型

若您关心返回大型结果集的查询使用了多少内存,那个么可以使用函数。有关此功能的更多详细信息,请参见。但是,在脚本执行结束时,会自动释放所有关联的结果内存

现在,回到您的问题,我认为从性能的角度来看,当PHP解析器执行相关网页时,使用MYSQL_ASSOC result type可能会节省网站所在服务器的一点内存,但您还必须确保并理解以上几点


希望有帮助。

我也有同样的问题。为了得到更好的想法,我做了一个小实验:

我分别使用MYSQL\u ASSOC、MYSQL\u bother和MYSQL\u NUM运行了三次相同的查询,得到了三个平均时间。在我的实验中,MYSQL_NUM比MYSQL_ASSOC快17%,MYSQL_ASSOC比MYSQL_ASSOC快16%

我确信我的小实验有缺陷,但我相信它朝着正确的方向发展


所以我想说MYSQL\u ASSOC给了您一个很好的折衷方案,因为您仍然可以切换表中的列…

我有完全相同的问题。为了得到更好的想法,我做了一个小实验:

$sql = "SELECT candidate.cand_number, candidate.cand_fname, candidate.cand_desc 
        FROM candidate ".$join.' 
        WHERE '.$condition;
$result = mysql_query($sql) or die(mysql_error()); 
我分别使用MYSQL\u ASSOC、MYSQL\u bother和MYSQL\u NUM运行了三次相同的查询,得到了三个平均时间。在我的实验中,MYSQL_NUM比MYSQL_ASSOC快17%,MYSQL_ASSOC比MYSQL_ASSOC快16%

我确信我的小实验有缺陷,但我相信它朝着正确的方向发展


所以我想说MYSQL\u ASSOC为您提供了一个很好的折衷方案,因为您仍然可以切换表中的列…

当您同时使用MYSQL和循环遍历数组时,每一行都会再次重复,我认为在几乎所有情况下,我们只需要一个数字数组或关联数组。。所以,找回我们需要的东西总是更好的。。MYSQL_都意味着数组中不必要的存储。当你同时使用MYSQL和循环数组时,每一行都会重复出现,我认为在几乎所有情况下,我们只需要一个数字或关联数组。。所以,找回我们需要的东西总是更好的。。MYSQL_都意味着阵列中不必要的存储。非常感谢,这很好地解释了这一点。情况是mysql_fetch_数组函数默认为mysql_两者,所以自从我们开始构建这个应用程序以来,它一直在使用这个默认值。应用程序的某些部分可能会利用数字索引而不是关联索引,所以我只是想看看是否值得切换到仅MYSQL_ASSOC,然后仔细检查以找出潜在的bug。非常感谢,这很好地解释了这一点。情况是mysql_fetch_数组函数默认为mysql_两者,所以自从我们开始构建这个应用程序以来,它一直在使用这个默认值。应用程序的某些部分可能会利用数字索引,而不是关联索引
$sql = "SELECT candidate.cand_number, candidate.cand_fname, candidate.cand_desc 
        FROM candidate ".$join.' 
        WHERE '.$condition;
$result = mysql_query($sql) or die(mysql_error()); 

o我只是想看看是否值得切换到仅MYSQL_ASSOC,然后仔细检查以找出潜在的bug。欢迎来到Stackoverflow!请为您的答案提供一些解释。欢迎来到Stackoverflow!请对你的答案也做一些解释。