gpt4 book ai didi

mysql - 使用 sqlalchemy 测量 mysql-server 上的插入时间和查询时间

转载 作者:行者123 更新时间:2023-11-29 00:31:04 29 4
gpt4 key购买 nike

我有一个使用 sqlalchemy 的 python 程序,它访问运行远程服务器的数据库。远程服务器上运行着 mysql-server5.5。代码的相关部分如下所示。

log = core.getLogger()

engine = create_engine('mysql://root@192.168.129.139/nwtopology', echo=False)

Base = declarative_base()
Session = sessionmaker(bind=engine)
session = Session()

class SourcetoPort(Base):
""""""
__tablename__ = 'source_to_port'
id = Column(Integer, primary_key=True)
port_no = Column(Integer)
src_address = Column(String(32),index=True)

#-----------------------------------------
def __init__(self, src_address,port_no):
""""""
self.src_address = src_address
self.port_no = port_no


#create tables
Base.metadata.create_all(engine)

#query code
r_res = session.query(SourcetoPort).filter_by(src_address=str(packet.src)).first()

#insert code
entry = SourcetoPort(src_address=str(packet.src) , port_no=packet_in.in_port)
#add the record to the session object
session.add(entry)
#add the record to the session object
session.commit()
end = time.time()
elapsed = end - start

我已经计算了超过 64 个数据库条目的平均查询和插入时间。

发现平均查询时间为 .001424 秒

发现平均插入时间为 .03144 秒

这意味着您每秒最多可以执行 32 次插入或每秒 702 次查询。

这些数字看起来合理吗?我对数据库和 sqlalchemy 很陌生。我的程序需要更多的插入和查询。而且每个表的条目数和表本身的数量将显着增加。这是具有最少条目数和一张表的最小原型(prototype)。

我的问题是,这是一次可以从数据库中获得的性能。如果不是,那么期望的性能是什么?是否有任何已知的机制来加速这个过程。?非常感谢任何帮助。

最佳答案

我建议阅读我对 Why is SQLAlchemy insert with sqlite 25 times slower than using sqlite3 directly? 的回答.它深入解释了与 DBAPI、SQLAlchemy Core 和 SQLAlchemy ORM 一起使用的各种 INSERT,包括用例和性能方面的差异。

关于mysql - 使用 sqlalchemy 测量 mysql-server 上的插入时间和查询时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16494000/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com