建表

首先在MySQL的example库上创建表user

use example;
create TABLE `user` (`id` int(11) NOT NULL,`last_name` varchar(45) DEFAULT NULL,`first_name` varchar(45) DEFAULT NULL,`sex` set('M','F')  DEFAULT NULL,`age` tinyint(1) DEFAULT NULL,`phone` varchar(11) DEFAULT NULL,`address` varchar(45) DEFAULT NULL,`password` varchar(45) DEFAULT NULL,`create_time` datetime DEFAULT NULL,PRIMARY KEY (`id`),KEY `idx_last_first_name_age` (`last_name`,`first_name`,`age`) USING BTREE,KEY `idx_phone` (`phone`) USING BTREE,KEY `idx_create_time` (`create_time`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

python脚本源码

用Python的MySQLdb模块连接msyql,每次批量插入100条,循环插入1000000次。本机测试的插入速度为每秒10000条左右。编写generate_user_data.py 脚本如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import MySQLdb
import MySQLdb.cursors
import random
import string
import time
#批量插的次数
loop_count = 1000000
#每次批量查的数据量
batch_size = 100
success_count = 0
fails_count = 0
#数据库的连接
conn = MySQLdb.connect(host="127.0.0.1", user="root", passwd="123456", db="example", port=3306, cursorclass = MySQLdb.cursors.SSCursor)
chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'
digits = '0123456789'
def random_generate_string(length):return string.join(random.sample(chars, length), '')
def random_generate_number(length):if length > len(digits):digit_list = random.sample(digits, len(digits))digit_list.append(random.choice(digits))return string.join(digit_list, '')return string.join(random.sample(digits, length), '')
def random_generate_data(num):c = [num]phone_num_seed = 13100000000def _random_generate_data():c[0] += 1return (c[0],"last_name_" + str(random.randrange(100000)),"first_name_" + str(random.randrange(100000)),random.choice('MF'),random.randint(1, 120),phone_num_seed + c[0],random_generate_string(20),random_generate_string(10),time.strftime("%Y-%m-%d %H:%M:%S"))return _random_generate_data
def execute_many(insert_sql, batch_data):global success_count, fails_countcursor = conn.cursor()try:cursor.executemany(insert_sql, batch_data)except Exception, e:conn.rollback()fails_count = fails_count + len(batch_data)print eraiseelse:conn.commit()success_count = success_count + len(batch_data)print str(success_count) + " commit"finally:cursor.close()
try:#user表列的数量column_count = 9#插入的SQLinsert_sql = "replace into user(id, last_name, first_name, sex, age, phone, address, password, create_time) values (" + ",".join([ "%s" for x in xrange(column_count)]) + ")"batch_count = 0begin_time = time.time()for x in xrange(loop_count):batch_count =  x * batch_sizegen_fun = random_generate_data(batch_count)batch_data = [gen_fun() for x in xrange(batch_size)]execute_many(insert_sql, batch_data)end_time = time.time()total_sec = end_time - begin_timeqps = success_count / total_secprint "总共生成数据: " + str(success_count)print "总共耗时(s): " + str(total_sec)print "QPS: " + str(qps)
except Exception, e:print eraise
else:pass
finally:pass
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84

执行python脚本

python generate_user_data.py

查看数据

(function () {(function () {('pre.prettyprint code').each(function () { var lines = (this).text().split(′\n′).length;var(this).text().split('\n').length;var numbering = $('').addClass('pre-numbering').hide(); (this).addClass(′has−numbering′).parent().append((this).addClass('has-numbering').parent().append(numbering); for (i = 1; i

如何用python在mysql上创建1亿条数据相关推荐

  1. psid mysql_使用Python对MySQL数据库插入二十万条数据

    importpymysqlimportrandomimportstring#建立数据库连接 mysql = pymysql.connect(host="数据库IP", user=& ...

  2. Mysql数据库快速插入亿级数据

    Mysql数据库快速插入亿级数据 接手一个项目,该项目运行了两三年了.接手的时候,只有一个部署文档和全部代码,再没有其他文档了,也没有其他任何人了解这个项目.好吧,试着深入了解吧.代码在测试环境跑来了 ...

  3. python怎么返回上一步操作_一步一步教你如何用python操作mysql

    工欲善其事,必先利其器.所以第一步,我们先下载第三方库.在这里,我用到的是pymysql库. 下载库:在命令行输入 1pip install pymysql 下载后可检验一下是否成功下载.直接在命令行 ...

  4. python 下载网页文件_『如何用python把网页上的文本内容保存下来』python爬取网页内容教程...

    python爬虫:如何爬网页数据并将其放在文本 用requests库 r=r.requests.get(url) r.concent 保存到文件里就行了 如何用python把网页上的文本内容保存下来 ...

  5. python向数据库写入数据_如何用Python向Mysql中插入数据

    我们使用Python经常会和Postgresql进行搭配,很少将python和mysql进行搭配.下面小编给大家分享如何用Python向Mysql中插入数据. 工具/原料 Pycharm 方法/步骤 ...

  6. 如何用 Python 分析 14 亿条数据?

    (点击视学算法公众号,可快速关注) 英文:Steve Stagg,翻译:Ryden Sun juejin.im/post/5aceae206fb9a028d2084fea Google Ngram v ...

  7. 教你用Python向MySQL中插入一百万条测试数据

    环境 Windows10+Python3.8+MySQL5.7 需求 在MySQL上构造一个100W条记录的表,要求有日期类型 存放5年的数据. 表结构 +-------+-------------+ ...

  8. MySQL Workbench 使用MySQL语法“创建表格以及插入数据”

    我们的MySQL Workbench创建表格以及插入数据共有两种方式.一种方式:通过我们自己进行手动创建表格以及插入数据.另一种方式:就是使用我们的MySQL的语法,进行创建表格以及添加数据. 下面的 ...

  9. 谷歌为什登不上去github_我们分析了GitHub上5.46 亿条日志,发现中国开源虽然贡献大但还有这些不足......

    作者 | InfoQ.X-lab编辑 | Tina 全球最大代码托管平台 GitHub 在 2019 年发布的年度报告中显示, GitHub 上目前已有超过 4000 万开发人员.将近 300 万个组 ...

最新文章

  1. WEB 打印的相关技术分析
  2. Spring Cloud Alibaba 一致性挑战:微服务架构下的数据一致性解决方案
  3. harmonyos上的程序用什么语言写,HarmonyOS应用开发 — HelloWorld应用开发E2E体验
  4. nmp 全局目录和缓存目录的配置
  5. Codeforces Round #727 (Div. 2) 题解
  6. Linux下出现ping:unknown host xxx.xxx问题的解决办法
  7. js与html页面分开,javascript – 当画布分割在多个页面上时,如何在使用html2canvas和jspdf时添加上边距?...
  8. Open3d之KDTree
  9. wr703n 4m固件 带打印机服务器_旗捷支招 | 如何关闭打印机固件自动更新?分分钟搞定!...
  10. Navicat无法导入excel文件的异常处理
  11. 华为云.通信云服务激活无限商业潜力
  12. 教育心理学有一句名言
  13. Wireshark The capture session could not be initiated on interface报错解决
  14. 单片机红绿灯加强版(kile仿真程序和protues硬件仿真)
  15. 小米air2se耳机只有一边有声音怎么办_盘点2020半入耳蓝牙耳机排名
  16. 非常简单-Linux环境下(有公网IP)或虚拟主机的环境下如何做一个网站???
  17. aab c式_aab表示的四字成语大全
  18. 如何查找一篇英文文章中出现频率最高的单词?
  19. Tomcat 6数据源的配置
  20. 学习笔记10--ASIL分解与冗余功能安全

热门文章

  1. ES5、ES6深拷贝、浅拷贝
  2. 华为HarmonyOS鸿蒙智能手表开发和设计需要知道的
  3. AttributeError: ‘str‘ object has no attribute ‘prefix_chars‘——类实例化不带括号的后果
  4. OSChina 周日乱弹 ——什么姑娘是女!王!大!人!
  5. 字符函数和字符串函数(上)
  6. unity编辑器上不穿模,真机Android上会穿模问题定位和解决
  7. android 汉化
  8. 2300套php网站源码模板 完整后台程序 整站带数据,ID41:建材自适应PC手机平板微信Seo结构送2300套PHP整站源码...
  9. 神经网络属于符号主义吗,神经网络符号表示
  10. 多旋翼位置控制器设计