【发布时间】:2018-01-19 16:18:49
【问题描述】:
我正在开发一个 Django 应用程序,该应用程序由一个每天抓取数千个商店商品(价格、描述、卖家信息)的刮板和一个允许用户访问数据和查看各种统计信息的 django 模板前端组成.
例如:用户能够点击“项目 A”,并获得一个详细视图,其中列出了有关“项目 A”的各种统计信息(如关于价格随时间变化的折线图、价格分布等)
用户还可以点击各个“抓取”的报告,并获取有关抓取的商品数量、平均价格的详细信息。等等。
所有这些统计信息当前都是在视图本身中计算的。
这一切在本地工作时运行良好,在一个包含 +/100 项的小型开发数据库上。但是,在生产中,该数据库最终将包含 1.000.000+ 行。这让我想知道计算视图中的统计数据是否会在未来导致大量滞后。 (特别是当我计划使用更复杂的回归分析以及一些最近邻 ML 分类来扩展统计数据时)
基于视图的方法的优点是图表始终是最新的。我当然也可以安排一个 CRONJOB 每隔几个小时进行一次计算(甚至可能在不同的服务器上)。这将使访问信息的速度非常快,但也意味着信息可能存在几个小时。
我以前从未真正使用过这种规模的数据,我想知道最佳做法是什么。
【问题讨论】:
-
通常最好使用 SQL 查询来计算统计信息,而不是在 Python 本身中。