datafrme不用to_sql批量插入mysql的方法
接上篇文章,優化版,一秒插入1w+資料
#批量插入並根據重複資料進行處理
class DF_MYSQL(DBBase):
#定義操作更新時間相關的方法
#獲取上次更新的時間
def __del__(self):
#刪除物件時關閉連結
self.mysql_cursor.close()
self.connect.close()
def update(self,df,col_list):
#update table_name對應的更新時間
sql = mysql_config.RP_M_RECORD_SQL
i = 0
n = 0
cols = col_list
df = df.ix[:, cols]
list_df = df.values.tolist()
times = len(list_df)//10000
if len(list_df) % 10000 != 0:
times = len(list_df)//10000 + 1
while n < times:
L = list_df[i:i+10000]
try:
self.mysql_cursor.executemany(sql,L)
except Exception as e:
jylog.info(e)
self.connect.rollback()
else:
self.connect.commit()
i = i + 10000
n = n + 1