接上篇文章,优化版,一秒插入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