欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mysql批量导入记录

程序员文章站 2022-06-11 13:27:09
...

我好蠢啊155555551

之前要导入大量数据,我一条一条读文件然后insert到数据库里。后来想到可以批量导入,试了一下,感觉自己之前蠢爆了

一句一句执行sql好慢的,批量导入要快好多

一般的sql插入语句是这样的:

INSERT INTO USER (username,PASSWORD) VALUES ('111','1')

插入多条的时候就可以是这样的:

INSERT INTO USER (username,PASSWORD) VALUES ('444','1'),('333','2');

python写脚本批量导入,就可以循环写sql字符串,然后直接运行字符串,不需要一条一条的导入。

#data_list:[["111","11"],["222","22"],["333","33"]]

#示例,每1000条循环一次
for i in range(int(len(data_list)/1000)+1):
    #sql语句的前半部分
    sql_insert='insert into 你的表名 (表的列名1,列名2) value '
    for data in data_list[i*1000:(i+1)*1000]:
        data1=data[0]
        data2=data[1]
        #加入sql语句的后半部分
        sql_insert+='("{}","{}"),'.format(data1,data2)
    with db.cursor() as cursor:
        #把最后一个逗号改为分号,执行
        cursor.execute(sql_insert[:-1]+";")
        cursor.fetchall()
        db.commit()
    #阶段打印一下,看看跑到第几条了
    print(i,end='   ')