簡體   English   中英

python db插入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM