文档说:
默认情况下,peewee 将缓存迭代 Select 查询时返回的行。
我想在 peewee 命中或错过此缓存时进行调试。
查看源代码,不同地方使用了
row_cache
。我应该在哪里插入logger
电话?
我已经激活了 peewee 查询日志记录。如果查询记录在那里,是否意味着它是缓存未命中?
我已经激活了 peewee 查询日志记录。如果查询记录在那里,是否意味着它是缓存未命中?
是的。
行缓存仅缓存行,因此对相同查询结果的多次迭代不会导致多次执行。
示例:
q = User.select()
# Query is executed:
for user in q:
print(user.email)
# Query is **not** re-executed.
for user in q:
print(user.email)
q2 = User.select()
# Query is executed:
for user in q2:
print(user.email)