实验:
新建测试表
CREATE DATABASE IF NOT EXISTS test; CREATE TABLE `test`.`t3` ( `id` int(11) NOT NULL AUTO_INCREMENT, `tcol01` tinyint(4) DEFAULT NULL, `tcol02` smallint(6) DEFAULT NULL, `tcol03` mediumint(9) DEFAULT NULL, `tcol04` int(11) DEFAULT NULL, `tcol05` bigint(20) 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(4) 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;
下载测试数据生成工具:
[root@db src]# mwget ‘https://github.com/Percona-Lab/mysql_random_data_load/releases/download/v0.1.12/mysql_random_data_load_0.1.12_Linux_x86_64.tar.gz‘ [root@db src]# tar zxf mysql_random_data_load_0.1.12_Linux_x86_64.tar.gz
下面来小测一把:8核16G的服务器 差不多3分钟样子还行吧
[root@db src]# ./mysql_random_data_load -h192.168.3.3 -uroot -p112233 -P 3301 --max-threads=8 test t3 100000 INFO[2020-04-17T18:12:01+08:00] Starting 3m1s [====================================================================] 100% INFO[2020-04-17T18:15:05+08:00] 100000 rows inserted
结论:
mysql_random_load_data 有实际需要也还是可以的,同时这个工具也支持根据外键引用关系,生成外键的相关数据。
具体可参看:https://github.com/Percona-Lab/mysql_random_data_load