前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL随机数据填充工具 mysql_random_data_load

MySQL随机数据填充工具 mysql_random_data_load

作者头像
保持热爱奔赴山海
发布2022-04-24 21:32:34
2.2K0
发布2022-04-24 21:32:34
举报

percona出品的小工具,用于随机生成测试数据。

https://github.com/Percona-Lab/mysql_random_data_load

直接下载release文件即可

mysql_random_data_load 将加载(插入)“n”条记录到源表,并根据数据类型用随机数据填充它。所以这个工具不会像 sysbench 那样确定预定义的表列或数据类型。它将根据列数据类型将数据插入表中。因此,我们可以根据我们的自定义需求生成随机数据。表格可以有任意数量的不同数据类型的列,此工具将根据列的数据类型生成数据并插入数据。

如果字段大小小于10,程序将生成一个随机的“名字” 如果字段大小大于10且小于30,程序将生成一个随机的“全名” 如果字段大小>30,程序将生成一个“lorem ipsum”段落,最多包含100个字符。

该程序可以检测一个字段是否接受 NULL,如果接受,它将随机生成 NULL(约 10% 的值)。

示例:

创建一个测试的空表

create database test;
use test;
CREATE TABLE `t3` (
  `id` int NOT NULL AUTO_INCREMENT,
  `tcol01` tinyint DEFAULT NULL,
  `tcol02` smallint DEFAULT NULL,
  `tcol03` mediumint DEFAULT NULL,
  `tcol04` int DEFAULT NULL,
  `tcol05` bigint DEFAULT NULL,
  `tcol06` float DEFAULT NULL,
  `tcol07` double DEFAULT NULL,
  `tcol08` decimal(10,2) DEFAULT NULL,
  `tcol09` date DEFAULT NULL,
  `tcol10` datetime DEFAULT NULL,
  `tcol11` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `tcol12` time DEFAULT NULL,
  `tcol13` year DEFAULT NULL,
  `tcol14` varchar(100) DEFAULT NULL,
  `tcol15` char(2) DEFAULT NULL,
  `tcol16` blob,
  `tcol17` text,
  `tcol18` mediumtext,
  `tcol19` mediumblob,
  `tcol20` longblob,
  `tcol21` longtext,
  `tcol22` mediumtext,
  `tcol23` varchar(3) DEFAULT NULL,
  `tcol24` varbinary(10) DEFAULT NULL,
  `tcol25` enum('a','b','c') DEFAULT NULL,
  `tcol26` set('red','green','blue') DEFAULT NULL,
  `tcol27` float(5,3) DEFAULT NULL,
  `tcol28` double(4,2) DEFAULT NULL
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;

开始造数据

usage: mysql_random_data_load <database> <table> <number of rows> [options...]

需要先人工创建 test.t3 这个表, mysql_random_data_load不关心这个表有哪些列,它都能自动进行填充。

# 如果要看详细过程,可以再加上参数 --debug
./mysql_random_data_load test t3 100000 --user=dts --password=dts --port=3316  --max-threads=4 --bulk-size=1000 --host=192.168.31.181  

填充后效果:
test> select count(*) from t3;                                                                                          
+----------+
| count(*) |
+----------+
| 100000   |
+----------+
1 row in set

test> select * from t3 order by id desc limit 1\G                                                                       
***************************[ 1. row ]***************************
id     | 100000
tcol01 | 13
tcol02 | 65
tcol03 | 479465
tcol04 | 589922315
tcol05 | 1258706440113351142
tcol06 | 2.77057
tcol07 | 0.599966
tcol08 | 5.42
tcol09 | 2022-04-23
tcol10 | 2021-08-22 07:07:54
tcol11 | 2021-06-10 03:07:50
tcol12 | 3:17:07
tcol13 | 2022
tcol14 | aut quam excepturi quidem corporis suscipit illum!
tcol15 | Sh
tcol16 | adipisci ipsam iste a.
tcol17 | adipisci rerum ut sapiente laudantium velit.
tcol18 | eos est est nam eius aspernatur.
tcol19 | sapiente est dicta error iure ipsum blanditiis.
tcol20 | voluptas velit assumenda dignissimos laboriosam a.
tcol21 | iure id nesciunt modi aut.
tcol22 | sit earum soluta alias aperiam accusantium!
tcol23 | Tin
tcol24 | Julie
tcol25 | c
tcol26 | blue
tcol27 | 0.47
tcol28 | 0.0


其他:
--print参数: 输出日志,但不执行插入操作
./mysql_random_data_load test t3 10000 --user=dts --password=dts --port=3316  --max-threads=4 --host=192.168.31.181 --bulk-size=1000 --print
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-04-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档