使用Python ORM查询对象数据库的性能开销是多少?

使用Python ORM查询对象数据库的性能开销是多少?,python,database,class,oop,orm,Python,Database,Class,Oop,Orm,我试图自己学习OOP,并且试图理解何时使用类 如果我有一个名为User的类,它有两个不同的方法…等等。现在,假设我的数据库中有50000个用户,我想查询这些用户以进行报告。假设我想根据用户类属性提取一半用户的ID 这是否意味着该类的实例被创建50000次?如果是这样的话,与使用独立的函数进行查询相比,这难道不会减慢速度吗?我不太确定我是否理解您的问题。但是,如果您询问是否可以在不实例化的情况下在类中使用方法,即创建类的实例,那么答案是肯定的。您必须使用一个称为静态方法的概念 考虑一下这个类,Fo

我试图自己学习OOP,并且试图理解何时使用类

如果我有一个名为User的类,它有两个不同的方法…等等。现在,假设我的数据库中有50000个用户,我想查询这些用户以进行报告。假设我想根据用户类属性提取一半用户的ID


这是否意味着该类的实例被创建50000次?如果是这样的话,与使用独立的函数进行查询相比,这难道不会减慢速度吗?

我不太确定我是否理解您的问题。但是,如果您询问是否可以在不实例化的情况下在类中使用方法,即创建类的实例,那么答案是肯定的。您必须使用一个称为静态方法的概念

考虑一下这个类,Foo:

class Foo():

    def __init__(self):
        pass

    def say_hello(self):
        print('Hello from Foo!')
为了调用say_hello方法,我们必须执行以下操作:

f = Foo()
f.say_hello()
这是福的问候!在控制台中

然而,为了让它工作,我们必须创建一个uuu init uuu方法,并且必须实例化Foo。现在让我们使用带有@staticmethod装饰器的静态方法重复这个实验

class Foo():

    @staticmethod
    def say_hello():
        print('Hello from Foo!')


Foo.say_hello()
这是福的问候!在控制台中,不需要创建任何对象。如您所见,不需要_uinit _;即构造函数


我希望这会有所帮助,如果我没有抓住你问题的重点,我向你道歉。祝你好运

这太棒了!非常感谢你。我只是想弄清楚如何运用OPP的原则。我想弄清楚什么时候该运用课程。是否应该为用户和报告本身设置一个类…等等。你的回答很有帮助。这实际上不是关于对象本身,而是关于在执行DB查询时的开销,例如ORM的开销。实际上,您会问,如果使用ORM为每个记录创建一个对象实例,它的开销是否太大?还有其他表示用户的方法,如SQL表/DB/schema sqlite/MySQL/Postgres/等,或Django,或无SQL数据库。最终,您的代码要做什么?您需要使用Python吗?GUI的其他系统要求是什么?REST接口?CPU和内存需求?如果您可以在一行SQL中完成这项工作,那么为什么不在SQL中完成这项工作呢?现有59个问题,这可能是重复的。还有很多现有的文章,我应该使用ORM吗?除非您告诉我们您的系统要求,否则只有您自己可以回答这个问题。