2013-05-11 49 views
1

我有使用SQLAlchemy的訪問運行遠程server.The遠程服務器具有的MySQL-server5.5上的後援相關部分運行DATABSE python程序測量的MySQL的服務器上的插入時間和查詢時間代碼如下。使用SQLAlchemy的

log = core.getLogger() 

engine = create_engine('mysql://[email protected]/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個條目的時間插入數據庫。

平均查詢時間被發現是0.001424秒

平均插入時間被發現是0.03144秒

這意味着你可以做一個第二OR 702最多32個插入查詢一個第二。

這些數字看起來是否合理。我對數據庫和sqlalchemy非常陌生。我的程序需要更多數量的insert和quries.Also每個表的數量和表本身的數量本身會顯着增加。This是裸minumum原型的條目的最小數目和一個表。

我的問題,這是怎樣的表現,一旦能夠從database.?If期望不是有什麼預期的性能?是否有任何已知的機制,以加快這一進程?任何幫助,高度讚賞。

回答