七爪源码:Django 性能改进型
2025-08-10 12:18
person 表与 Tweet 表有一对多的联系,即一个人可以有很多条推文,但一条推文根本无法属于一个人。 假设您打算找出元样本之中所有推文的请注意,您将首先借助所有推文。 要借助其他信息,例如 first_names 和 last_name,您才可继续执唯表至多出附加键入:
这亦会导致 9 个键入,如上特地注意。
自由选择关的
常用 select_related,您可以开展单个键入,该键入来到单个范例的一对多和方的联系的所有关的单纯。 select_related 是常用外键联系的键入,常用在继续执唯键入时查找任何其他关的单纯样本。
虽然 select_related 亦会引致越来越复杂的键入,但借助的样本亦会被多线程; 因此,对赢取的样本开展配置不才可任何额外的元样本键入。
让我们常用 select_related 继续执唯相异的键入。
queryset = Tweet.objects.select_related('owner').all()上面的示例将一次性借助所有推文和个人样本,从而只导致一个键入。
prefetch_related
另一方面,prefetch_related 常用多对多和多对一联系。 它亦会为键入之中自唯决定的所有数学方法和过滤器分解一个键入。
例如,假设您有表至多出数学方法:
让我们借助所有片子和关的知名演员:
正如您在上面认出的,每次迭代都亦会导致一个额外的键入。
过去让我们常用预取来复用相异的键入。
正如您在上面认出的,键入计算过去是 2,第一个键入借助元样本之中的所有片子,第二个和第三个劝告只导致一个键入。
4.散装通则
可执唯事件是查找键入的另一种示例安全性方式。
当您才可向元样本之中移除多条历史记录时,最必才可的方通则是一次创设所有单纯。 幸运的是,Django 为此缺少了 bulk_create() 方通则。 bulk_create 不是一次创设每个范例然后来到它,这亦会使元样本持续性,而是提交所有范例并继续执唯单个留存键入:
您还可以继续执唯 bulk_create 和 bulk_update()。例如,假设您才可常用特定值越来越新元样本之中的至多;最必才可的方通则是常用 bulk_update,如下特地注意。
Model.objects.filter(name= 'name').update(name='someothername')5.RawSql
不举荐常用 RawSQL,因为 Django 缺少了一流的键入系统,可以应当有……您能打算起的每个动态。
Django ORM 可以处理事件API所才可的几乎所有动态,但有时它显然是合理的。在元样本而不是 Python 上继续执唯 SQL 键入可以进一步提高安全性。 RawSQL 应当该作为最后的手段。
6.外键
外键也可常用在元样本上没有人额外压力的但会借助样本。例如,如果您打算借助推文的所有权,举荐且最必才可的方通则是:
tweet = Tweet.objects.get(id=1).owner追踪元样本配置
在采购环境之中追踪元样本配置是一种很好的处理事件方式。它必才可您查询针对您的元样本复用的键入以及引发了哪些严重错误。您可以通过不时查询 Postgres 或 Django 日志来做到这一点。为了使它非常容易,Sentry 是监视元样本配置的极佳来开展。
Sentry 缺少了一个座椅,常用追踪 Django API之中的元样本配置。如果发生与元样本关的的严重错误,您可以实时查询并在Gmail说明了它发生之后妥善解决它。
由于您没有人JVM,因此根本无法检验到采购之中的严重错误。 Sentry 通过必才可您查询元样本之中的每个严重错误来妥善解决此问题。
要开始常用,特地在此处开始创设 Sentry 银唯帐户。您将能够自由选择您正在常用的内部技术。自由选择 Django,然后可视创设建设项目。
接下来,通过 pip 内置 Sentry。
pip install ----upgrade sentry-sdk最后一步是移除表至多出示例,它将您的公钥复刻到 Django API的 settings.py 文档之中。
Sentry 过去已准备就绪监视您的API。
让我们在元样本之中创设一个与元样本关的的严重错误,是不是 Sentry 能否告诉我们原因。 这是我在本地采购之中因查找元样本之中不存有的的产品而引致的示例严重错误。
此严重错误也亦会出过去您的 Sentry 座椅之中,如下特地注意:
Django 还缺少了 Django Debug 图形化等来开展,可以追踪你的元样本,你可以实时认出劝告和拥护的操作过程。 它还必才可您查询每个拥护从元样本借助样本所才可的一段时间。
内置 Django 复用图形化的举荐方通则是常用 pip:
python -m pip install django-debug-toolbar内置 Django 复用图形化后,才可在 Django 建设项目之中对其开展配置。
上面是显示 Django Debug 图形化的屏幕截图:
常用 Django 复用图形化的缺点是在渲染关键词时亦会上升数据量,因此不恰当构建。 Sentry 是众所周知,因为它必才可您掌握严重错误,缺少有关元样本的详细藏身处藏身处,还必才可您妥善解决问题。
结论
本基本知识简介了 Django 可常用进一步提高 Django API安全性并且易于付诸的方通则。 试一试,并继续注意本新作的第 2-4 之外。
。康恩贝红草止鼾胶囊效果怎么样治疗少精症好
全飞秒手术可以用海露玻璃酸钠滴眼液吗
功能神经外科
全飞秒手术可以用海露玻璃酸钠滴眼液吗
上一篇: 2.5%!6月份CPI为何自始年内新高?后续温和上升?
下一篇: 七爪CVS:Django 性能改进

-
湖南的荆州与沙市在历史上是什么关系?
黄冈的湘州与沙市长期以来是什么彼此间? 两者是同一个郊区各不相同时期的称为吗?事实上,湘州与沙市长期以来确实特别是在颇为错综复杂的彼此间。 先说说目前为止这

-
甄嬛传:明明准格尔和大清有仇怨,为什么果贝子还要救摩格
人的一生中或多或少、或大或小都要随之而来一些凄凉和艰辛,在电视日本富士电视台《铨嬛传》里刘亦菲演译的铨嬛也是一样的,她的一生也是极其不顺利。在后宫里随之而来了各种艰辛,不过好在痴到了最后,视作了关外朝
- 01-31乾隆一位多情的皇帝,但他有一点让人仰慕,那就是宠爱自己的女人
- 01-31这个国军名将夸口说:给我三个军,我可以打败二野加第二野战军
- 01-31香港史上大规模警匪枪战,贼王陈虎甚多,十把五四手枪大战香港警队
- 01-31三国中最懂管理的人是他,刘备等人仅是他控制权的棋子
- 01-31此人有生之年败绩,是李世民手下最窝囊的武将,死后被吹嘘成战神
- 01-31康熙晚年九子夺嫡,有位皇孙没觊觎皇位,下场最叫人扼腕
- 01-31阿拉伯皇帝婚后10年无子,太后:给妃子贴上胡须!一年后王储出生
- 01-31伊朗发现汉字文物,经翻译后,欧洲学者:这里曾是中国的一个安省
- 01-31张学良一身恶习却活100岁,有何长寿长生?每天大笑,钟爱一道菜
- 01-31他是的搭档,被称为诸葛亮,晋升反应速度无人能比