sql - Django ORM 与 PostgreSQL 原始 sql
问题描述
我的 django 应用程序在服务器 1上运行,该服务器连接到server2 上的 Amazon RDS (PostgreSQL)。在日常工作中,我必须经常与数据库交互以写入/获取/查询数据。
目前,我在整个应用程序中遵循 django ORM 方式。我只是想知道如果我在 ORM 上使用 django.db 连接游标使用 PostgreSQL raw sql quereis,性能是否会有任何改进?
以下是一个示例查询的建议方法。
如果我的数据库在另一台服务器的 RDS 上运行,有人可以建议上述哪一项将导致更快的性能提升
解决方案
使用原始查询将导致几乎没有性能差异。ORM 确实使用了几个周期来构造查询,但这与发送查询、数据库接收、解释和运行查询以及发回结果的工作相比是微不足道的。
在某些情况下,ORM 可能确实会进行(过度)复杂的查询,但如果您获取所有记录,情况并非如此。有时需要 ORM 专业知识(就像它需要 SQL 专业知识一样)才能找到性能更好的查询。
此外,您还可以让 Django ORM 为您完成工作,使用.values()
它可以更方便地构造DataFrame
:
res = pd.DataFrame(table_name.objects.values())
推荐阅读
- javascript - Javascript 代码在 Safari(桌面和移动设备)上不起作用
- matlab - 如何在输入“N”乘“N”矩阵的中心找到“M”乘“M”子矩阵?(在 Matlab 中)
- r - 如何将许多因素循环到一个函数中
- mysql - 通过检查其他行中的值从 JOIN 表中获取结果
- amazon-web-services - APIG/Lambda 用于托管多个微服务
- xamarin - 如果在 ListView Xamarin Forms 中找不到图像跳过记录
- python - 为什么在创建类实例后不能为属性赋值?
- javascript - Javascript - 等待超长循环的正确方法?
- python - 使用就地替换将 ByteArray 转换为字符串的快速 Pythonic 方法
- amazon-web-services - 无法使用 AWSIoTPythonSDK 通过 MQTT 连接到 AWS IoT Core