orm

1. persistment database connections(持久化连接)
2. queryset会在缓存,尽量重用
3. use the with template tag,use iterator(),use explain()
4. Do database work in the database rather than in python 用blogs.objects.exclude blog.objects.filter查询过滤queryset.count 代替len(queryset)queryset.exists 代替if queryset
5. 只取需要的数据blog.objects.values()    返回字典列表blog.objects.values_list() 返回元组列表blog.objects.defer('name') 排除不需要的字段blog.objects.only('name') 仅取需要的字段
6. 关联查询blog.objects.select_related.get() 尽量深入查询关联的数据(大量外键时entry.blog_name代替entry.blog.name select_related: 仅限于单值关系 - 外键(多对一)和一对一prefetch_related: 预取 多对多和多对一对象7.使用queryset.update和queryset.delete来批量处理

select_related:1.对于一对一字段(OneToOneField)和外键字段(多对一)(ForeignKey),可以使用select_related 来对QuerySet进行优化.在对QuerySet使用select_related()函数后,Django会获取相应外键对应的对象,从而在之后需要的时候不必再查询数据库了。    select_related使用SQL的JOIN语句进行优化,通过减少SQL查询的次数来进行优化、提高性能。
prefetch_related: 2.对于多对多字段(ManyToManyField)和多对一字段,可以使用prefetch_related()来进行优化,值得注意的是,可以在调用prefetch_related之前调用select_related,先select_related,然后利用缓存到的数据prefetch_related。然而一旦prefetch_related已经调用,select_related将不起作用。
django[三] ORM操作进阶 - richardzgt - 博客园
Django之Models进阶操作(字段属性) - 小L小 - 博客园

缓存

内存缓存:memcached
数据库缓存: redis(django-redis)
文件系统缓存:file

数据库读写分离

celery

部署方案

 nginx+uWSGI+djangonginx+gunicorn+django nginx+apache+mod_wsgi+django

性能度量分析

django-silk地址:
GitHub - jazzband/django-silk: Silky smooth profiling for Django

https://docs.djangoproject.com/zh-hans/2.1/topics/performance/

django orm性能优化相关推荐

  1. Django的model查询操作 与 查询性能优化

    Django的model查询操作 与 查询性能优化 1 如何 在做ORM查询时 查看SQl的执行情况 (1) 最底层的 django.db.connection 在 django shell 中使用 ...

  2. django 性能优化_优化Django管理员

    django 性能优化 Managing data from the Django administration interface should be fast and easy, especial ...

  3. django 中QuerySet特性,支持切片,索引,可迭代(缓存机制)iterator性能优化

    Book表的数据显示 id title price publish_id 2 Linux 30 1 3 项塔兰 45 2 4 追风筝的人 39.9 3 5 富爸爸 23 10 创建queryset 视 ...

  4. Django ORM操作

    Django ORM操作 一般操作 看专业的官网文档,做专业的程序员! 必知必会13条 <1> all(): 查询所有结果<2> get(**kwargs): 返回与所给筛选条 ...

  5. django ORM相关的那些操作汇总

    必知必会13条 <1> all(): 查询所有结果<2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象<3> get(**kwargs): ...

  6. MySQL 的性能(下篇)—— 性能优化方法

    简介 文中内容均为阅读前辈的文章所整理而来,参考文章已在最后全指明 本文分为上下两篇: 上篇:MySQL 的 SQL 执行分析 下篇:MySQL 性能优化 下面为下篇内容,分为以下部分: 一.创建表时 ...

  7. django mysql orm教程_带你了解Django ORM操作(基础篇)

    前言 在日常开发中,需要大量对数据库进行增删改查操作. 如果头铁的话,使用原生SQL是最好的,毕竟性能又高,又灵活. 但是通常情况下,我们不是太需要那么苛刻的性能,也没有那么多刁钻的需求用原生SQL ...

  8. DataRabbit 轻量的数据访问框架(13)--DataRabbit 3.0 ORM性能大幅度提升!

       DataRabbit 3.0重写了DataRabbit 2.0的ORM实现的内核,性能提升了90倍左右,结果是DataRabbit 3.0的ORM性能与直接使用ADO.NET的性能已经非常接近. ...

  9. MIS性能优化常见问题与方案(辅助项目组性能优化的总结贴)

    最近帮忙公司的几个项目组进行了不同方面的性能优化,发现几个项目都出现了一些共性的问题.这里写一篇文章,总结一下这几类问题,以及其对应的解决方案.方便其它项目组参考. 常见问题一:打开页面非常慢,有的项 ...

最新文章

  1. 三十七、Prim算法--求解最小生成树
  2. js中的异常处理try...catch使用介绍
  3. Codeforces Round #686 (Div. 3) E. Number of Simple Paths 基环树 + 容斥
  4. 吴孟超:用一生为理想去奋斗 丨纪念吴孟超医生
  5. MySQL 基础 ———— 视图的应用与总结
  6. 想要写好的程序应该远离计算机
  7. java如何判断当前系统是windows还是linux?
  8. 通向架构师的道路(第十四天)Axis2 Web Service安全之rampart
  9. Hadoop:hadoop fs、hadoop dfs与hdfs dfs命令的区别
  10. png?wxfrom=5wx_lazy=1
  11. java json 转数据_Java解析(读取)Json数据{}、[{}](转)
  12. 谭浩强c语言图文,c语言谭浩强(图文教程).ppt
  13. 深度长文探讨Join运算的简化和提速
  14. linux微内核,开源微内核seL4microkernel
  15. Qt多功能计算器(二)——三角函数
  16. 华为锁屏后微信无法连接服务器,华为手机锁屏时无法接收微信消息怎么办?
  17. 实战:模拟登录知乎网站(添加cookie)
  18. 微信公众平台开发--表情符号
  19. 像素 屏幕分辨率 摄像头分辨率
  20. 阿米洛键盘失灵_阿米洛 海韵评测:可爱的键帽,强大的轴型,少女心十足!...

热门文章

  1. 【区块链】区块链在金融领域的应用—对全球578家金融机构的调研
  2. 一个巨牛的人工智能教程
  3. SqlMDF数据提取工具
  4. docker虚拟化技术
  5. html网页制作注意事项,使用网页设计模板的注意事项-
  6. leetcode1728. 猫和老鼠 II(分析三——算法部分2)
  7. 什么是静态网站和动态网站?
  8. 三大运营商手机号段正则表达式
  9. com.mchange.v2.c3p0.ComboPooledDataSource 报红
  10. IMU传感器时什么?(二)陀螺仪的种类和原理