Skip to content

Latest commit

 

History

History
40 lines (21 loc) · 1.1 KB

面试题012.md

File metadata and controls

40 lines (21 loc) · 1.1 KB

面试题012:

请分析一下,Django ORM和原生SQL的优缺点?

优点 缺点
Django ORM 快速开发、隐藏数据访问细节、避免不规范的SQL、简化迁移 影响性能、复杂查询效率低
RAW SQL 复杂查询更灵活 需要检查SQL是否有问题、SQL注入漏洞

Django ORM高级操作:

  • Lazy load和Cache提升性能

  • defer和only

  • Django中使用原生SQL

    • News.objects.only('title').filter(tag_id=1).extra(where=['clicks>800'])

    • news = News.objects.raw('select id, title from tb_news')

    • 类似pymysql操作

      from django.db import connection  
        
      cursor = connection.cursor()   
      cursor.execute("select id, title from tb_news")  
      cursor.fetchall()
  • select_related关联查询

  • using 多个数据库时控制QuerySet在哪个数据库上操作