0
我最近從Django1.4升級與Oracle後端Django1.7和已經注意到了,下面的查詢極其緩慢:的Django 1.7數據類型綁定甲骨文
DomainObject.objects.get(some_colume=some_value)
而這對
非常快:
DomainObject.objects.filter(some_colume=some_value)[0]
我無論是在Oracle企業管理器異形不同的是,對於第一個查詢綁定變量是由駕駛者通過一個NVARCHAR2而第二個被作爲VARCHAR2通過。 由於列是VARCHAR2,所以第二個查詢可以使用列上定義的索引,而第一個查詢不能。
關於爲什麼Django將第一個查詢作爲NVARCHAR2傳遞並將第二個查詢作爲VARCHAR2傳遞的任何想法?
感謝, Vackar
我也注意到Django增加了看起來完全無用的分頁信息到'get'查詢。解決方法是運行: from django.db.models import query query.MAX_GET_RESULTS = 1 – 2014-09-25 14:01:41
我假設你的意思是'從Django 1.4到Django 1.7' – Deepend 2014-09-25 14:17:57
道歉,是的,你是正確的。 – 2014-09-25 14:49:38