当我从数据库中读取一个SQLAlchemy Model对象时,询问它的" id"财产比其他财产要长。
例如,value = some_model.id
需要约1毫秒,而value = some_model.some_field
需要花费百分之一时间。
是否有某种方法可以使id查找与普通属性查找一样快。要清楚,该对象已从数据库中读取。我已经尝试了model.field_name
和getattr(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