第一种:
# 多线程下可复用metadata对象,而不需要重复创建
metadata = MetaData()
metadata.reflect(bind=engine)
table = Table('table_name', metadata, autoload=True)
第二种:
# 多线程下可复用metadata对象,而不需要重复创建
metadata = MetaData()
table = Table('table_name', metadata, autoload_with=engine)
其中第一种方式会映射所有表的元数据,耗时会比较长,而且数据库中表变化后,需要重新映射;
第二种方法是只映射某个表,所以效率更高一些。
两种方式各有优劣,比如如果数据库中表相对固定,更推荐第一种方式,否则推荐第二种
文章讨论了在多线程环境中使用Python的SQLAlchemy库管理数据库元数据的两种方法。第一种方法是全局创建MetaData对象并反射所有表,适合数据库表稳定的情况,但首次映射耗时且需定期更新。第二种方法仅对指定表进行映射,提高效率,适合表频繁变动的环境。选择取决于数据库的动态性。
1225

被折叠的 条评论
为什么被折叠?



