sqlite 通过聚合优化基本组

dohp0rv5  于 2023-01-26  发布在  SQLite
关注(0)|答案(1)|浏览(170)

这可能是我太天真了,但我认为这种聚合会更快,因为它有点简单-没有任何类型的复杂连接,所有数据都在一个简单的表中。
这个问题的答案也可能是数据大小,而不是有效的查询或数据库设置,但我正在寻找一个快速的聚合和下表的总和:
| 身份证|时间|
| - ------|- ------|
| 1个|无|
| 第二章|无|
| 三个|无|
| 第二章|三十|
| 1个|二十二|
| 第二章|十七|
其思想是按id分组并对时间列求和。可能有300到500个名字,平均300万行。在mongo和sql中,id列都有索引。
使用pymongo给了我大约3秒的时间来对一个包含3 M条目的静态数据库执行查询,而SQLAlchemy给了我大约2秒的时间来处理相同的数据。
我能安全地假设它应该花那么长的时间来处理300万个条目吗?或者我显然错过了一些东西,比如直接SQL查询(而不是基于Python的SQL查询)可能更快?
另外,请注意,我希望使用JSON格式的结果,我认为这是sqlalchemy中比较慢的部分--创建结果的python对象,然后发送出去。
我对使用SQLAlchemy和pymongo很熟悉,也很有信心,但其他的就不多了,所以如果有其他更快的数据库解决方案,我肯定会考虑,因为我想经常运行这个查询,2-4秒的延迟有点不舒服。

zy1mlcev

zy1mlcev1#

看起来这个处理时间是正常的,加快速度的唯一方法是使用@rickhg12hs推荐的按需物化视图来生成一些常见的预计算数据集,如果所需的查询比这些默认值更复杂,那么就接受2-5秒的处理时间。

相关问题