像
/* Exercise PDOStatement::fetch styles */
print("PDO::FETCH_ASSOC: ");
print("Return next row as an array indexed by column name\n");
$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
print("\n");
print("PDO::FETCH_BOTH: ");
print("Return next row as an array indexed by both column name and number\n");
$result = $sth->fetch(PDO::FETCH_BOTH);
print_r($result);
print("\n");
print("PDO::FETCH_LAZY: ");
print("Return next row as an anonymous object with column names as properties\n");
$result = $sth->fetch(PDO::FETCH_LAZY);
print_r($result);
print("\n");
print("PDO::FETCH_OBJ: ");
print("Return next row as an anonymous object with column names as properties\n");
$result = $sth->fetch(PDO::FETCH_OBJ);
print $result->NAME;
print("\n");
Run Code Online (Sandbox Code Playgroud)
那么默认是FETCH BOTH,我想知道当我要获取大量数据时FETCH ASSOC是否更快; 或者他们是一样的?
谢谢
Gat*_*ler 41
我想知道这个问题的答案,所以我写了一个快速的基准脚本.
我建议您在自己的服务器上运行此基准测试,但是,对于单行结果,这是我的设置的典型结果:
对于大型数据集,这些结果是典型的:
请参阅git hub上的注释,获取所有行确实会更改测试.
ASSOC、BOTH 和 OBJ 通常是相同的,只是它们返回不同的结构。那里没有性能差异。
LAZY 执行某种延迟加载。PDO::FETCH_LAZY 在访问对象变量名称时创建它们。这意味着只有在访问属性时才会受到性能损失,而在调用 fetch() 时则不会。如果您仅使用返回数据的一部分,这非常有用。
| 归档时间: |
|
| 查看次数: |
10364 次 |
| 最近记录: |