
解决 Django 「懒惰」的基本方法
现在我们解决这个问题的方法就是「预加载」。从本质上讲,就是你提前警告 Django ORM 你要一遍又一遍的告诉它同样无聊的指令。在上面的例子中,在 DRF 开始获取前很简单地加上这句话就搞定了:
queryset = querysetprefetch_related('orders')
当 DRF 调用上述相同序列化 customers 时,出现的是这种情况:
获取所有 customers (执行两个往返数据库 *** 作,第一个是获取 customers,第二个获取相关 customers 的所有相关的 orders。)
对于第一个返回的 customers,获取其 order (不需要访问数据库,我们已经在上一步中获取了所需要的数据)
对于第二个返回的 customers,获取其 order (不需要访问数据库)
对于第三个返回的 customers,获取其 order (不需要访问数据库)
对于第四个返回的 customers,获取其 order (不需要访问数据库)
对于第五个返回的 customers,获取其 order (不需要访问数据库)
对于第六个返回的 customers,获取其 order (不需要访问数据库)
你又意识到,你可以有了 很多 customers ,已经不需要再继续等待去数据库。
其实 Django ORM 的「预备」是在第1步进行请求,它在本地高速缓存的数据能够提供步骤2+所要求的数据。与之前往返数据库相比从本地缓存数据中读取数据基本上是瞬时的,所以我们在有很多 customers 时就获得了巨大的性能加速。
解决 Django REST Framework 性能问题的标准化模式
我们已经确定了一个优化 Django REST Framework 性能问题的通用模式,那就是每当序列化查询嵌套字段时,我们就添加一个新的 @staticmethod 名叫 setup_eager_loading ,像这样:
class CustomerSerializer(serializersModelSerializer):
orders = OrderSerializer(many=True, read_only=True)
def setup_eager_loading(cls, queryset):
""" Perform necessary eager loading of data """
queryset = querysetprefetch_related('orders')
return queryset
这样,不管哪里要用到这个序列化,都只需在调用序列化前简单调用 setup_eager_loading ,就像这样:
customer_qs = Customersobjectsall()
customer_qs = CustomerSerializersetup_eager_loading(customer_qs) # Set up eager loading to avoid N+1 selects
post_data = CustomerSerializer(customer_qs, many=True)data
或者,如果你有一个 APIView 或 ViewSet ,你可以在 get_queryset 方法里调用 setup_eager_loading :
def get_queryset(self):
queryset = Customersobjectsall()
# Set up eager loading to avoid N+1 selects
queryset = selfget_serializer_class()setup_eager_loading(queryset)
return queryset
要看PDB结构当然是去Protein Data Bank主页,所有的蛋白质结构都存放在PDB里面,每一个结构都有一个编号。
Protein Data Bank主页地址是:>
access数据库安装的过程方法如下:
1、第一步,打开下载盘 的 microsoft_access_2016_installerpkg安装程序,然后打开并运行安装向导,如下图所示,然后进入下一步 >
2、其次,完成上述步骤后,单击继续以同意许可协议。d出的窗口将询问是否同意许可协议,单击“同意”按钮,如下图所示,然后进入下一步。
3、接着,完成上述步骤后,选择安装位置。如果不想更改,则可以默认继续。如果要更改安装位置,请单击“更改安装位置”按钮,如下图所示,然后进入下一步。
4、将d出安全验证。输入计算机密码,然后单击“安装软件”按钮,如下图所示,然后进入下一步。
5、接着,完成上述步骤后,将进入安装环节,等待绿色进度条完成并安装完毕,如下图所示,然后进入下一步。
6、然后,完成上述步骤后,将d出安装成功的提示。单击下面的“关闭”按钮以完成安装,如下图所示,然后进入下一步。
7、随后,完成上述步骤后,打开应用程序,就可以看到已安装的office办公软件了,如下图所示,然后进入下一步。
8、最后,完成上述步骤后,双击打开,就可以开始使用了,如下图所示。这样,问题就解决了。
Microsoft access 是由Microsoft(微软)公司开发的一套基于 Windows *** 作系统的办公软件套装。常用组件有 Word、Excel、PowerPoint等。
+24v和0v是PLC内置的一个小型开关电源的输出点编号。。+24V也就是正极啦。这个开关电源很小的功率,当你做简单的系统的时候可以用它当你PLC的输入信号电源使用。。
而输入端的COM是输入接点的公共端。它可以根据你外接信号是PNP或者NPN而接入正电源或者负电源(DC24V的),当接入正电源时,输入点(I0-I13)就需要接入负电源的信号(NPN)。接法相反就是PNP。
当输入点比较远或者信号源功率比较大时,建议外接开关电源取代+24V和0V。PLC自带的就可以不用
以上就是关于如何优化 Django REST Framework 的性能全部的内容,包括:如何优化 Django REST Framework 的性能、怎样获得化合物的三维结构图,.PDB格式的、access数据库怎么安装等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)