SQLAlchemy id查找如何与其他属性一样快?

时间:2015-04-08 21:16:13

标签: python database orm sqlalchemy

当我从数据库中读取一个SQLAlchemy Model对象时,询问它的" id"财产比其他财产要长。

例如,value = some_model.id需要约1毫秒,而value = some_model.some_field需要花费百分之一时间。

是否有某种方法可以使id查找与普通属性查找一样快。要清楚,该对象已从数据库中读取。我已经尝试了model.field_namegetattr(model, "field_name")

我正在进行数百万次批量操作,所以尽管1ms可能看起来不是很多,但它们会很快加起来。

model.py:

from .db import db

class ListingModel(db.Model):

    # required fields
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Unicode)

app.py:

id = 4
model = ListingModel.query.get(id)

t_start_id = time.time()
id_value = getattr(model, "id")
t_end_id = time.time()

t_start_name = time.time()
name_value = getattr(model, "name")
t_end_name = time.time()

print t_end_id - t_start_id  # 0.00124096870422
print t_end_name - t_start_name  # 4.05311584473e-06

0 个答案:

没有答案