快速为mysql创造100万假数据
目录
第一种方式:利用navicat16的新功能!
第二种方式:写python脚本
第一种方式:利用navicat16的新功能!(破解版私聊博主)
打开一张表。
设置数量。
除了自动推断外,还可以对每个字段单独设置生成属性。
第二种方式:写python脚本
1.安装依赖:
pip install Faker -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install peewee -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install tomorrow -i https://pypi.tuna.tsinghua.edu.cn/simple
2.建表
CREATE TABLE `user` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`user_name` varchar(255) NOT NULL COMMENT '账号',`ssn` varchar(255) NOT NULL COMMENT '身份证',`name` varchar(255) NOT NULL COMMENT '名字',`phone_number` varchar(32) NOT NULL COMMENT '手机号',`plate` varchar(255) NOT NULL COMMENT '车牌',`address` varchar(255) NOT NULL COMMENT '地址',`building_number` varchar(255) NOT NULL COMMENT '楼名',`country` varchar(255) NOT NULL COMMENT '国家',`birth` varchar(255) NOT NULL COMMENT '生日',`company` varchar(255) NOT NULL COMMENT '公司',`job` varchar(255) NOT NULL COMMENT '职位',`card_number` varchar(255) NOT NULL COMMENT '信用卡号',`city` varchar(255) NOT NULL COMMENT '城市',`week` varchar(255) NOT NULL COMMENT '星期',`email` varchar(255) NOT NULL COMMENT '邮件',`title` varchar(255) NOT NULL COMMENT '标题',`paragraphs` longtext NOT NULL COMMENT '内容',`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=75528 DEFAULT CHARSET=utf8mb4;
3.构建模型
db_mysql = MySQLDatabase('fast_generator', user='root', password='123456', host='localhost', port=3306)class User(Model):user_name = TextField()ssn = TextField()name = TextField()phone_number = TextField()plate = TextField()address = TextField()building_number = TextField()country = TextField()birth = TextField()company = TextField()job = TextField()card_number = TextField()city = TextField()week = TextField()email = TextField()title = TextField()paragraphs = TextField()class Meta:database = db_mysql
4.存储数据(多线程会报错:参考python多线程tomorrow的使用_苍穹之跃的博客-CSDN博客_python tomorrow)
@threads(20)
def produce_data() -> User:fake = Faker(locale='zh_CN')# 账号user_name = fake.user_name()# 身份证ssn = fake.ssn(min_age=18, max_age=90)# 名字name = fake.name()# 手机号phone_number = fake.phone_number()# 车牌plate = fake.license_plate()# 地址address = fake.address()# 楼名building_number = fake.building_number()# 国家country = fake.country()# 生日birth = fake.date_of_birth(tzinfo=None, minimum_age=0, maximum_age=115)# 公司company = fake.company()# 职位job = fake.job()# 信用卡号card_number = fake.credit_card_number(card_type=None)# 城市city = fake.city()# 星期week = fake.day_of_week()# 邮件email = fake.ascii_free_email()# 单句sentence = fake.sentence(nb_words=6, variable_nb_words=True, ext_word_list=None)# 段落paragraphs = fake.paragraphs(nb=3, ext_word_list=None)user = User(user_name=user_name,ssn=ssn,name=name,phone_number=phone_number,plate=plate,address=address,building_number=building_number,country=country,birth=birth,company=company,job=job,card_number=card_number,city=city,week=week,email=email,title=sentence,paragraphs=paragraphs)user.save()if __name__ == '__main__':for i in range(1000000):produce_data()
5.完整代码
from peewee import MySQLDatabase, Model, TextField
from faker import Faker
from tomorrow import threadsdb_mysql = MySQLDatabase('fast_generator', user='root', password='123456', host='localhost', port=3306)class User(Model):user_name = TextField()ssn = TextField()name = TextField()phone_number = TextField()plate = TextField()address = TextField()building_number = TextField()country = TextField()birth = TextField()company = TextField()job = TextField()card_number = TextField()city = TextField()week = TextField()email = TextField()title = TextField()paragraphs = TextField()class Meta:database = db_mysql@threads(20)
def produce_data() -> User:fake = Faker(locale='zh_CN')# 账号user_name = fake.user_name()# 身份证ssn = fake.ssn(min_age=18, max_age=90)# 名字name = fake.name()# 手机号phone_number = fake.phone_number()# 车牌plate = fake.license_plate()# 地址address = fake.address()# 楼名building_number = fake.building_number()# 国家country = fake.country()# 生日birth = fake.date_of_birth(tzinfo=None, minimum_age=0, maximum_age=115)# 公司company = fake.company()# 职位job = fake.job()# 信用卡号card_number = fake.credit_card_number(card_type=None)# 城市city = fake.city()# 星期week = fake.day_of_week()# 邮件email = fake.ascii_free_email()# 单句sentence = fake.sentence(nb_words=6, variable_nb_words=True, ext_word_list=None)# 段落paragraphs = fake.paragraphs(nb=3, ext_word_list=None)user = User(user_name=user_name,ssn=ssn,name=name,phone_number=phone_number,plate=plate,address=address,building_number=building_number,country=country,birth=birth,company=company,job=job,card_number=card_number,city=city,week=week,email=email,title=sentence,paragraphs=paragraphs)user.save()if __name__ == '__main__':for i in range(1000000):produce_data()
快速为mysql创造100万假数据相关推荐
- 插入2万调数据耗时_教你如何6秒钟往MySQL插入100万条数据!然后删库跑路!
一.思路 往MySQL中插入1000000条数据只花了6秒钟! 关键点: 1.使用PreparedStatement对象 2.rewriteBatchedStatements=true 开启批量插入, ...
- Mysql 给你100万条数据的一张表,你将如何分页查询优化?
1.两种查询引擎查询速度(myIsam 引擎 ) InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行. ...
- qt中的mysql能存入多少行数据_Qt中提高sqlite的读写速度(使用事务一次性写入100万条数据)...
SQLite数据库本质上来讲就是一个磁盘上的文件,所以一切的数据库操作其实都会转化为对文件的操作,而频繁的文件操作将会是一个很好时的过程,会极大地影响数据库存取的速度.例如:向数据库中插入100万条数 ...
- python读取大数据量xml_[C#]_[使用微软OpenXmlSDK (OpenXmlReader)读取xlsx表格] 读取大数据量100万条数据Excel文件解决方案...
1.OpenXmlSDK是个很好的类库,可惜只能通过C#调用,C#的童鞋又福气了. 2.服务端程序由于没法安装office,所以这个对asp.net网站来说是最理想的库了.需要.net 4.0版本以上 ...
- 13 | 线性排序:如何根据年龄给100万用户数据排序?
三种时间复杂度是 O(n) 的排序算法:桶排序.计数排序.基数排序.因为这些排序算法的时间复杂度是线性的,所以我们把这类排序算法叫作线性排序(Linear sort).之所以能做到线性的时间复杂度,主 ...
- 查询分析300万笔记录_给你100万条数据的一张表,你将如何查询优化?
1.两种查询引擎查询速度(myIsam 引擎) InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行. ...
- 给你100万条数据的一张表,你将如何查询优化?
1.两种查询引擎查询速度(myIsam 引擎 ) InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行. ...
- 极限挑战—C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码)
实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本实验将使用5中方法完成这个过程,并详细记录各种方法所耗费的时间. 本实验中所用到工具为VS2008和SQL SERVER 2000.S ...
- 导出100万条数据到excel
导出100万条数据到excel 目的 数据库中有100万条数据,用java程序导入到excel,所花费的时间 演示 过程 eclipse 创建main sqlserver连接数据库程序 TCP/IP连 ...
最新文章
- 冒泡排序和鸡尾酒排序(改进的冒泡排序)
- centos中卸载php,在Centos 7上完成PHP的卸载和重新安装
- springbot 注入多实例
- [SHOI2011]双倍回文 manacher
- css 动画 - 这次不会忘记了
- 1.6编程基础之一维数组_01与指定数字相同的数的个数
- stm32 vscode 编译_vs code+gcc stm32编译环境搭建
- 双重特异性酪氨酸磷酸化调节激酶1A行业调研报告 - 市场现状分析与发展前景预测
- IBM服务器诊断面板
- matlab计算积和式,定积分计算方法总结
- navicat15 安装
- GPU编程3--GPU内存深入了解
- 操作系统 第七章 文件管理
- python 实时监控日志文件_Python动态监控日志的内容
- 08s01 mysql_mysql报错 code:08S01,msg:SQLSTATE
- 轻量而敏捷的工业组态软件UI设计工具-ConPipe Studio 2022
- SQL SEVER 整数相除自动取整问题
- pe下bootice修复Linux引导,pe下修复引导不成功?这种方法才是最有效的解决方法...
- 我花了一个五一终于搞懂了OpenLDAP
- C++实现高斯坐标的正反算
热门文章
- 美国科技大亨换儿子血浆实现“永葆青春”?
- android tablelayout 点击,TableLayout中的单击事件的问题
- [hiho 22]线段树-lazy标记的下放
- #芯片# MS2991
- 艾恩ASP无组件上传最新更新说明
- MFC VC 操作Excel,word的OLE对象
- 抖音xlog算法 hook分析记录 抖音xlog风控算法 抖音xlog参数分析
- 谷歌(Google): reCaptcha(3.0版本)做网站验证
- android自定义水平长方形进度条,Android 自定义水平进度条的圆角进度
- C语言printf格式化输出汇总