1. ORM语句特点:
    2. 惰性查询:只有查询到了才会去走数据库
    3. onlydefer
    4. only
    5. res=models.Book.objects.only('title')
    6. for i in res:
    7. i.title titleonly括号内字段,i.titke的时候不会走数据库
    8. i.price only括号内没有price字段,需要重新走数据库
    9. defer
    10. res=models.Book.objects.defer('title')
    11. for i in res:
    12. res.price price不在defer中,不走数据库,deferonly相反
    13. 总结:
    14. only中传的字段就是走数据库查的,返回的res只有这一个字段的内容
    15. defer中传的字段,不走数据库查询出来,返回的res中有含除了传的字段以外的所有内容
    16. selected_relatedprefetch_related 与跨表操作有关
    17. selected_related 联表
    18. res = models.Book.objects.select_related('publish')
    19. for i in res:
    20. res.Publish.name
    21. selected__related内部直接将Book表和Pulish表所有的数据封装
    22. 这个时候再要数据的时候就不会走数据库
    23. 注意点:只能放外键字段(多对多不行)
    24. res = models.Book.objects.prefetch_related('publish')
    25. for i in res:
    26. res.Publish.name
    27. prefetch_related内部其实是子查询
    28. 总结:
    29. selected_relatedprefetch_related在使用中
    30. 如果两张表很大,在使用selected_related拼表的时候耗时可能会比使用prefetch_relate
    31. 在使用的时候需要视情况而定