找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4926|回复: 1

python executemany性能交流

1

主题

2

帖子

7

积分

贫民

积分
7
王小鑫 发表于 2015-8-25 16:11:16 | 显示全部楼层 |阅读模式


def insert_data():
    sql = "insert into deposit_order(id,status,account_id,amount,type,bank_code,card_no,seq,channel_code,created_time,modify_time,finish_time)VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
    zj = ZhongJin('20150411')
    num = 100000
    params = zj.get_zhongjin_params(num)
    if len(params) > 5000:
        for i in range(len(params) / 5000):
            print(mysql.executemany(sql, params[:5000]))
            params[:5000] = []
            print datetime.datetime.now()
    if len(params) < 5000:
        print mysql.executemany(sql, params)
        print datetime.datetime.now()

def executemany(self, sql, params=None):
    cursor = self.get_cursor()
    try:
        cursor.executemany(sql, params)
        self.conn.commit()
        affected_rows = cursor.rowcount
    except Exception, e:
        logging.error("mysql executemany error: %s", e)
        return 0
    finally:
        cursor.close()
    return affected_rows

刚刚写了上面的方法,实现python批量insert mysql数据库。
最后的结果是:
10万条数据,没5000条提交一次,最后的使用时间是6分钟!
  这样的效率不知道算不算差,但不能满足我但需求啊,10万条希望能在1分钟内入库完成,请高手们支招啊



回复

使用道具 举报

1

主题

2

帖子

7

积分

贫民

积分
7
王小鑫  楼主| 发表于 2015-8-25 16:40:46 | 显示全部楼层
沙发自己来。。

每次1万条数据 : 80s(1万数据)
每次2000:  10s(2000条数据)
每次5000: 20s(5000条数据)

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表