[英]python db insert
我在代碼中遇到性能問題。我正在使數據庫連接成為一個選擇查詢,然后插入表中。在一個選擇查詢ID中填充了約500行。在插入之前,我正在運行選擇查詢約8-9次首先然后插入然后全部使用cursor.executemany.But插入需要2分鍾的時間,這不是qood。
def insert1(id,state,cursor):
cursor.execute("select * from qwert where asd_id =%s",[id])
if sometcondition:
adding.append(rd[i])
cursor.executemany(indata, adding)
其中rd [i]反對做記錄,indata是一條插入語句
#prog start here
cursor.execute("select * from assd")
for rows in cursor.fetchall()
if rows[1]=='aq':
insert1(row[1],row[2],cursor)
if rows[1]=='qw':
insert2(row[1],row[2],cursor)
我真的不明白你為什么要這么做。
看來您想將“ assd”中的行的子集插入一個表中,並將另一子集插入另一個表中?
為什么不僅僅使用兩個結構如下的SQL語句呢?
insert into tab1 select * from assd where asd_id = 42 and cond1 = 'set';
insert into tab2 select * from assd where asd_id = 42 and cond2 = 'set';
這將大大減少您往返數據庫的次數以及客戶端-服務器流量。 速度也要快一個數量級。
當然,我也強烈建議您在代碼的插入和選擇部分中指定列名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.