搜索的最佳方法是什么?如果我过滤控制器中的所有数据并获得结果,并使用模型中的查询并获得结果,会有什么区别?请提出您的意见。
答案 0 :(得分:1)
这取决于查询的复杂程度。 您可以尝试通过在每个步骤之间的代码中放置标记来测量处理时间,以便测量处理时间。
然后你进行一次速度处理测试,如:
print time_flag 1
var results_sql_processing = *complex query*
print time flag 2
var raw_results_script_processing = *dump query*
print time flag 3
var results_script_processing = *processing the data*
print time flag 4
并确保results_script_processing == results_sql_processing。 您还可以设置不同的数据集大小(限制100,500,1000),并查看两种解决方案之间的差异如何发展
另外,我建议您查看许多框架中可能找到的查询构建器(我使用laravel的查询构建器)。 当查询不是太复杂(没有数据聚合,复杂的concat,......)时,它们通常是一个非常好的折衷方案,你仍然可以使用连接,联合和许多过滤器。 但是,如果你想获得一个超级复杂的数据透视表,只需构建一个强大的SQL查询,然后在你的代码中激活它!