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

What is the performance overhead of using a Python ORM to query a DB of objects?

我正在尝试自学 OOP,并且正在尝试了解何时使用 classes。

如果我有一个名为 User 的 class,它有几个不同的方法...等等。现在假设我的数据库中有 50,000 个用户,我想查询这些用户的报告。假设我想根据 User class 属性提取一半用户的 ID。

这是否意味着 class 的实例被创建了 50,000 次?如果是这样,与使用执行查询的独立函数相比,这不会减慢速度吗?

我不太确定我理解你的问题。但是,如果您询问是否可以在 class 中使用方法而不实例化(即创建实例)class,那么答案是肯定的。你必须使用一个叫做 "static methods."

的概念

考虑这个 class,Foo:

class Foo():

    def __init__(self):
        pass

    def say_hello(self):
        print('Hello from Foo!')

为了调用say_hello方法,我们必须做到以下几点:

f = Foo()
f.say_hello()

这会在控制台中打印 Hello from Foo!

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

class Foo():

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


Foo.say_hello()

这会在控制台中打印 Hello from Foo!,并且不需要创建任何对象。如您所见,不需要 __init__(即构造函数)。

希望这对您有所帮助,如果我错过了您的问题,我深表歉意。祝你好运!