我用 100.000 条记录进行了一些测试,并且 json_encode 仍然比创建每个获取的行的 createMyModel(builder,id,.....) 更快。
我只是在做以下事情:
//Flatbuffer Version
$query->execute();
$builder = new \App\Http\Controllers\FlatbufferBuilder(0);
while ($row = $query->fetch()) {
MyFlatBufferGeneratedModel::createMyModel($builder,
$row['id'],
// add here about 24 extra atributes ....
);
}
$builder->dataBuffer();
return "Finish";
和:
//Json Version
$query->execute();
$result_array = [];
while ($row = $query->fetch()) {
array_push($result_array,$row);
}
json_encode($result_array);
return "Finish";
额外说明:
- 我使用 Laravel 5.3 和 MySql 作为数据源。
- Json 进程耗时 1.8 秒,Flatbuffer 进程耗时 10 秒