如何获取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())
答案 0 :(得分:1)
一种选择是使用django-debug-toolbar:它衡量在每个视图上完成的每个查询。
任何django应用程序都是必须。
关于其他问题:
我想说它们是等价的。在Django代码中,get
使用filter
并检索第一个元素。
也应该是等效的,因为filter
和exclude
只是filter(Q(...))
和filter(~Q())
的不同名称,而链接等同于逗号:查询是由AND
连接。
但是,因为在一个中使用"open"
而在另一个"close"
中,这会对特定后端的执行方式产生影响,而AFAIK这种差异只能通过分析来衡量。