n3s*_*orm 9 python sql performance
我正在处理具有大量SQL查询的应用程序.它们非常复杂,当我完成理解时,我已经忘记了它是如何开始的.
我想知道从数据库中提取更多数据并使用Python在我的代码中进行最终查询是否是一个好习惯.我疯了吗?对性能有害吗?
注意,结果也很大,我说的是其他人开发的ERP生产.
让DB弄清楚如何最好地检索您想要的信息,否则您将不得不在代码中复制RDBMS的功能,这将比您的SQL查询更复杂.
此外,您将浪费时间将所有不需要的信息从数据库传输到您的应用程序,以便您可以在代码中过滤和处理它.
所有这一切都是正确的,因为你说你正在处理大数据.
我会尽可能在应用程序中包含业务逻辑。查询中的复杂业务逻辑难以维护。(当我理解完一个之后,我已经忘记了这一切是如何开始的)存储过程中的复杂逻辑是可以的。但对于典型的 Python 应用程序,您会希望业务逻辑采用 Python 语言。
现在,数据库在处理数据方面比应用程序代码更好。因此,如果您的逻辑涉及大量数据,那么使用数据库中的逻辑可能会获得更好的性能。但这适用于复杂的报告、簿记操作等需要处理大量数据的情况。您可能希望使用存储过程或专门从事此类操作的系统(报告的数据仓库)来执行这些类型的操作。
正常的OLTP操作不涉及太多数据。数据库可能很大,但典型事务所需的数据(通常)只是其中的一小部分。在大型数据库中查询可能会导致性能问题,但您可以通过多种方式对其进行优化(索引、全文搜索、冗余、汇总表...取决于您的实际问题)。
每条规则都有例外,但作为一般准则,请尝试将业务逻辑包含在应用程序代码中。用于复杂逻辑的存储过程。一个单独的数据仓库或一组报告程序。