我如何获得django orm查询所花费的时间?

时间:2014-06-26 09:50:28

标签: python django django-orm

如何获取django orm查询所需的时间?

此外,以下哪个查询会更快?

ShipmentPPTLMapping.objects.get(shipment_id = shipment_id)

ShipmentPPTLMapping.objects.filter(shipment_id = shipment_id)[0]

也适用于这些查询。哪一个更快

ShipmentPPTLMapping.objects.filter(pptl_id = pptl_id).exclude(bag_seal_status = 'close').count())

ShipmentPPTLMapping.objects.filter(pptl_id = pptl_id,bag_seal_status = 'open').count())

1 个答案:

答案 0 :(得分:1)

一种选择是使用django-debug-toolbar:它衡量在每个视图上完成的每个查询。

任何django应用程序都是必须

关于其他问题:

  1. 我想说它们是等价的。在Django代码中,get使用filter并检索第一个元素。

  2. 也应该是等效的,因为filterexclude只是filter(Q(...))filter(~Q())的不同名称,而链接等同于逗号:查询是由AND连接。 但是,因为在一个中使用"open"而在另一个"close"中,这会对特定后端的执行方式产生影响,而AFAIK这种差异只能通过分析来衡量。