我有一些数据库结构; 因为大部分内容与我们无关,我只会描述一些相关内容.以湖的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) …