我優化我的代碼,這是在開始做太多的疑問奇怪的Django的'BEGIN」 - PARAMS =()」查詢
我得到幾乎最低限度,現在,已經開始。遇到下列未來:
QUERY = 'BEGIN' - PARAMS =()
這似乎是用來幾乎每一次,實際上加倍的查詢號碼的 - 但我不認爲它實際上是做任何事情(除了開放的連接DB和浪費時間和CPU)。
誰能告訴我它是什麼,爲什麼這是必要的,如果不是,我該如何刪除它?
我在查看我的查詢使用django.db.connection.queries
。
Django - 1.8 Python - 3.4 以sqlite作爲數據庫。
編輯:上下文
提供的例子是有點古怪,因爲它幾乎每一個動作我拿這需要查詢導致此查詢彈出(旁邊我想查詢)。
但這裏有幾個例子:
創建其中有現在一個缺省時間戳的對象:
session = Session()
session.save()
提供以下查詢:
QUERY = 'BEGIN' - PARAMS =()
QUERY = 'INSERT INTO "tracker_session" ("name", "session_date", "number_of_courts", "finished", "session_tracker") VALUES (%s, %s, %s, %s, %s)' - PARAMS = ('', '2015-06-17', 4, False, '')
同樣更新一組改變特定屬性的對象:
(該self
這裏只是一個ManyToMany
屬性的對象 - players
)
self.players.all().update(available=True)
產量:
QUERY = 'BEGIN' - PARAMS =()
QUERY = 'UPDATE "tracker_person" SET "available" = %s WHERE "tracker_person"."id" IN (SELECT U0."id" AS Col1 FROM "tracker_person" U0 INNER JOIN "tracker_session_players" U1 ON (U0."id" = U1."person_id") WHERE U1."session_id" = %s)' - PARAMS = (True, 19)
第二個查詢始終是我想要的,我不知道第一QUERY = 'BEGIN' - PARAMS =()
是。
沒有任何上下文,幾乎不可能對此陳述發表一些看法。 –
@KlausD。添加了一些示例以幫助上下文,讓我知道如果您需要更多。 – Scironic