理解dajngo ORM查询中select_related的作用

 我们基于以下模型来分析select_related的作用。

 两种查询方式:
A. 不带select_related
book = Book.objects.filter(pk=1) # 需要查询数据库 1
n = book.name # 需要查询数据库 2
a = book.age # 需要查询数据库 3
*总共向数据库发起三次查询。

B. 带select_related
book = Book.objects.select_related().filter(pk=1) # 需要查询数据库 1
n = book.name # 直接从book对象中取
a = book.age # 直接从book对象中取
*总共向数据库发起一次查询。
也就是说使用select_related()方法一次性的把Book关联的对象都查询出来放入对象中,再次查询时就不需要再连接数据库,节省了后面查询数据库的次数和时间。

标签: DJANGO

发表评论:

登陆