我使用django-tables2来显示数据库查询的值。而且每件事都很好。我现在正在使用Django-dabug-toolbar,并正在浏览我的页面。更多出于好奇而非性能需求。当我在带有表的页面上看到调试工具栏时,调试工具栏注册了超过300个条目的300多个查询。即使没有性能影响(至少现在没有),我也不认为充斥着这么多查询的数据库是一个好主意。所有数据应仅来自一个查询。
为什么会发生这种情况?如何减少查询次数?
答案 0 :(得分:2)
我发布此信息作为我和其他可能遇到同样问题的人的未来参考。
搜索了一下后,我发现django-tables2正在为每一行发送一个查询。查询类似SELECT * FROM "table" LIMIT 1 OFFSET 1
,偏移量增加。
在创建表并传递查询之前,我通过调用query = list(query)
减少了sql调用的数量。通过在python视图代码中评估查询,该表现在似乎与evaulated数据一起使用,而且只有一个数据库调用而不是数百个。
答案 1 :(得分:1)