我优化我的代码,这是在开始做太多的疑问奇怪的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