利用 pymysql 往数据库插入百万条数据

思路:

  1. 先创建一个自定义的数据库表;
  2. 生成一个列表,列表中的数据应该和数据库表中的每一列对应;
  3. 利用cursor.executemany 批量插入列表中的数据。

注意点:

批量添加数据时,数据格式必须list[tuple(),tuple(),tuple()]  或者tuple(tuple(),tuple(),tuple())

代码解析:

# -*- coding: utf-8 -*-
# Author:benjamin

import pymysql

# 创建连接
conn = pymysql.connect(host='192.168.214.128', port=3306, user='root', passwd='ben123', db='db2')

# 创建游标
cursor = conn.cursor()

def createTable():
    '''
    创建数据库表
    :return:
    '''
    
    try:
        sql = '''
            create table mytable (
            nid int not null auto_increment primary key,
            name varchar(255) not null,
            email varchar(255) not null,
            extra text
            )engine=innodb default charset=utf8
        '''
        cursor.execute(sql)
        conn.commit()
        print('create table ok!')
    except Exception as e:
        print(e)


def myList(value):
    '''
    生成一个列表,[('admin1', 'admin1qq.com', 'hahaadmin1'),...]
    :param value: 自定义的数据量
    :return: new_list
    '''
    new_list = [] # 新建一个空列表用来存储元组数据

    for i in range(1, value + 1):

        name = 'admin'+ str(i)
        email = name + '@qq.com'
        extra = 'I am '+ name

        tup = (name,email,extra) # 构造元组
        new_list.append(tup)  # [(),(),()...]

    print("*"*5+"generate list ok"+"*"*5)
    return new_list


def myInsert(newList):
    '''
    数据库插入
    :param newList: 传入的列表数据
    :return:
    '''

    try:
        sql = "insert into mytable(name,email,extra) values(%s,%s,%s)" # 要插入的数据
        cursor.executemany(sql,newList) # 执行插入数据

        conn.commit()
        cursor.close()
        conn.close()
        print('insert ok')
    except Exception as e:
        print(e)


if __name__ == '__main__':

    # 创建数据表
    createTable()
    # 选择要插入的数据量
    value = 1000000 # 定义数据量
    newList = myList(value)
    myInsert(newList)

本文作者:benjieqiang

本文链接:https://www.cnblogs.com/benjieqiang/p/11372532.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   benjieqiang  阅读(7091)  评论(1编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑
  1. 1 蒹葭(古筝版) 徐潮城
蒹葭(古筝版) - 徐潮城
00:00 / 00:00
An audio error has occurred.

作词 : 诗经

作曲 : 徐潮城

蒹葭-徐潮城

编:刘文

蒹葭苍苍白露为霜

所谓伊人在水一方

溯洄从之道阻且长

溯游水中央

蒹葭萋萋白露未晞

伊人在水湄

溯洄从之道阻且跻

溯游水中坻

蒹葭苍苍白露为霜

所谓伊人在水涘

伊人在水一方

蒹葭采采白露未已

溯洄从之道阻且右

溯游水中沚

蒹葭萋萋白露未晞

伊人在水湄

溯洄从之道阻且跻

溯游水中坻

蒹葭苍苍白露为霜

所谓伊人在水涘

伊人在水一方

蒹葭采采白露未已

溯洄从之道阻且右

溯游水中沚

蒹葭苍苍白露为霜

所谓伊人在水涘

伊人在水一方

蒹葭采采白露未已

溯洄从之道阻且右

溯游水中沚