我有一些数据库结构; 因为大部分内容与我们无关,我只会描述一些相关内容.以湖的Item对象为例:
items_table = Table("invtypes", gdata_meta, Column("typeID", Integer, primary_key = True), Column("typeName", String, index=True), Column("marketGroupID", Integer, ForeignKey("invmarketgroups.marketGroupID")), Column("groupID", Integer, ForeignKey("invgroups.groupID"), index=True)) mapper(Item, items_table, properties = {"group" : relation(Group, backref = "items"), "_Item__attributes" : relation(Attribute, collection_class = attribute_mapped_collection('name')), "effects" : relation(Effect, collection_class = attribute_mapped_collection('name')), "metaGroup" : relation(MetaType, primaryjoin = metatypes_table.c.typeID == items_table.c.typeID, uselist = False), "ID" : synonym("typeID"), "name" : synonym("typeName")})
我想在sqlalchemy /数据库层中实现一些性能改进,并且有几个想法:1)两次请求相同的项目:
item = session.query(Item).get(11184) item = None (reference to item is lost, object is garbage collected) item = session.query(Item).get(11184) …