我有一个查询SQL数据库的Flask API。GET请求返回JSON输出。由于我主要是一名python开发人员,所以在将排序或过滤参数传递给API时,我更愿意遍历JSON。但我担心,如果JSON输出太大,这会导致性能不佳。
与带有ORDER BY或WHERE子句的SQL查询相比,JSON输出的后处理是否有显著的性能下降?是否有标准/推荐的方法来做到这一点?
直观地说,从数据库中查询/过滤数据将比请求所有内容,将其加载到内存中并在那里进行过滤更有效。
要准确地回答这个问题,你必须写一个现实的用例,并在内存过滤和数据库查询中使用JSON实现它。然后运行两个实现,并使用概要分析来查看哪个最快。
为了使测试真实,它还应该在您的托管环境中针对您的托管数据库运行,而不是在您的机器上运行,以考虑网络延迟/机器性能。
如果你对编写复杂的SQL语句感到不舒服,我建议使用SQLAlchemy ORM,它为你的数据库提供了一个面向对象的接口,但那真的是另一回事。