Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.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/6/asp.net-mvc-3/4.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
Php 对象与数组_Php_Mysqli_Benchmarking - Fatal编程技术网

Php 对象与数组

Php 对象与数组,php,mysqli,benchmarking,Php,Mysqli,Benchmarking,我目前在一个网站上工作,主要关注加载、处理等方面的效率和速度 我使用mysqli扩展来获取数据库位和bob,但我想知道输出数据集的最佳/最有效的方法是什么 目前,我正在使用$mysqli->fetch_assoc()和foreach()。读过这本书后,我知道先计算我的数据会有所不同。(我将在构建后进行优化) 我的问题是,哪种方法可以更快地将结果集转换为php数据对象。创建一个对象?数字阵列?关联数组?我的思想是一个对象,但我不确定 我只是好奇,因为我不熟悉PHP的内部结构:)在mysql\u f

我目前在一个网站上工作,主要关注加载、处理等方面的效率和速度

我使用mysqli扩展来获取数据库位和bob,但我想知道输出数据集的最佳/最有效的方法是什么

目前,我正在使用$mysqli->fetch_assoc()和foreach()。读过这本书后,我知道先计算我的数据会有所不同。(我将在构建后进行优化)

我的问题是,哪种方法可以更快地将结果集转换为php数据对象。创建一个对象?数字阵列?关联数组?我的思想是一个对象,但我不确定


我只是好奇,因为我不熟悉PHP的内部结构:)

mysql\u fetch\u object
的注释下,PHP文档中实际上有一个小基准:

SELECT * FROM bench... (mysql_fetch_object)
查询时间:5.40725040436
提取时间:16.2730708122(平均值:1.32130565643E-5)
总时间:21.68032166

查询时间:5.37693023682
提取时间:10.3851644993(平均值:7.48886537552E-6)
总时间:15.7620947361

查询时间:5.345921278
提取时间:10.6170959473(平均值:7.64049530029E-6)
总时间:15.9630172253


获取对象的速度最慢,获取数字数组的速度可能比使用
mysql\u fetch\u array
mysql\u fetch\u assoc
快一点,但差别可以忽略不计。事实上,
mysql\u-fetch\u-array
同时获取assoc和numeric,它比
mysql\u-fetch\u-assoc
更快,如图所示。。但是如果你追求性能,就不要使用mysql\u fetch\u object

我相信数字数组可能是最轻量级的,其次是关联数组,然后是对象。我不认为这些差异会增加多少,所以您最熟悉的语法是最好的。

来自

注意:性能

在速度方面,该函数与mysql_fetch_array()相同,并且几乎与mysql_fetch_array()一样快 mysql_fetch_row()(差别不大)

正如Tatu给出的基准所表明的那样,两者之间存在细微差异,但请记住,这些数字是从100个连续查询中累积而来的。我想说,你现在不麻烦,以后再优化的策略是一个不错的选择

SELECT * FROM bench... (mysql_fetch_array)
SELECT * FROM bench... (mysql_fetch_assoc)