哪一个更好,在后端迭代和排序数据,还是让数据库处理它



我正在尝试为Djabgo rest框架web应用程序设计一个数据库模式。在某个时候,我有两个巧克力:

1-选择一个模式,在其中的一个或多个apie中,我必须从数据库中获取一个查询集,并使用python对其进行迭代和排序。(例如,我可以将一些数据存储在数组数据类型列中,从数据库中获取它们,并使用python对它们进行排序。(

2-将数据存储在另一个表中,并在每次插入时插入大量的行。这样,我就可以用orm代码在更少的行中获得我喜欢的格式的数据。

我尝试了一些基本的测试和基准测试,看看哪种方式更快,让数据库处理更多的工作(第二种方式(并没有让我失望。但我没有办法设定一个更真实的情况,问题是:

当数据库每秒还必须处理来自其他apie和客户端的数百个请求时,让数据库处理该作业仍然是个好主意吗?数据库(和orm(通常比后端更快、更可靠吗?

一般来说,当工作适合数据库时,您希望让数据库工作。排序结果集将属于该类别。

请记住:

  • 数据库运行在服务器上,通常运行在分布式系统上,因此它可以访问更多的资源
  • 数据库是为处理大数据而设计的,因此它们不受单个线程中内存的限制
  • 当这个问题出现时,通常需要将比严格需要的更多的数据传递回应用程序。考虑一个问题,比如获得某件事的前10名
  • 应用程序和数据库中的混合处理通常需要多次查询并来回传递数据,这是非常昂贵的

(毫无疑问还有其他考虑因素。(

在某些情况下,在应用程序中进行工作可能更高效或更方便。一个常见的例子是格式化应用程序的结果集——比如将1234.56转换为$1,234.56。其他示例是应用程序语言具有不直接在SQL中实现或难以在SQL中实施的功能。

最新更新