我正在使用Django进行原始SQL查询。我需要对输出进行分页,因为对于某些输入,这些查询返回的结果超过100k,这需要很长时间。我无法使用Django ORM,因为我的SQL查询包含与非常特定的postgres插件(RDKit PostgreSQL卡盒)的交互。
目前,我正在获取所有结果,然后才进行分页。但是,这确实是我程序中的瓶颈,因为要获取10万行以上的所有结果,可能要花一分钟以上的时间。
# making a specific sql statement
sql = compose_sql_statement(parameters)
molecules = Molecule.objects.raw(sql)
paginator = Paginator(molecules, 10)
molecules_page = paginator.get_page(page)