当前位置: 移动技术网 > IT编程>数据库>Mysql > mysql自动生成大量数据

mysql自动生成大量数据

2020年03月23日  | 移动技术网IT编程  | 我要评论

目录

mysql自动生成大量数据

为了学习验证高性能mysql,自动生成大量的数据做测试。内容来源于网络。

创建随机数字生成

delimiter $$
create definer=`root`@`%` function `random_num`( ) returns int(5)
begin   
 declare i int default 0;  
 set i = floor(100+rand()*10);  
return i;  
 end$$
delimiter ;

生成随机字符串

delimiter $$
create definer=`root`@`%` function `random_string`(n int) returns varchar(255) charset latin1
begin
 declare chars_str varchar(100) default 'abcdefghijklmnopqrstuvwxyzabcdefjhijklmnopqrstuvwxyz';
 declare return_str varchar(255) default '';
 declare i int default 0;
 while i < n do
 set return_str =concat(return_str,substring(chars_str,floor(1+rand()*52),1));
 set i = i + 1;
 end while;
 return return_str;
end$$
delimiter ;

生成随机数字,返回varchar类型数据组合,例如手机号

delimiter $$
create definer=`root`@`%` function `random_string_phone`(n int) returns varchar(255) charset latin1
begin
 declare chars_str varchar(100) default '1234567890';
 declare return_str varchar(255) default '';
 declare i int default 0;
 while i < n do
 set return_str =concat(return_str,substring(chars_str,floor(1+rand()*10),1));
 set i = i + 1;
 end while;
 return return_str;
end$$
delimiter ;

创建用户表myisam引擎

create table `sys_user_myisam` (
  `user_id` bigint(100) not null auto_increment,
  `username` varchar(100) default null comment '用户名',
  `password` varchar(100) default null comment '密码',
  `salt` varchar(100) default null comment '盐',
  `email` varchar(100) default null comment '邮箱',
  `mobile` varchar(100) default null comment '手机号',
  `status` int(1) default '1' comment '状态  0:禁用   1:正常',
  primary key (`user_id`)
) engine=myisam auto_increment=1000001 default charset=utf8 comment='系统用户myisam';

创建存储过程生成数据

delimiter $$
create definer=`root`@`%` procedure `insert_sys_user_myisam`(in start int(10),in max_num int(10))
begin  
declare i int default 0;   
 set autocommit = 0;    
 repeat  
 set i = i + 1;  
 insert into sys_user_myisam (user_id,username,password,salt,email,mobile,status) values (start+i,random_string(10),random_string(6),random_string(10),random_string(20),random_string_phone(12),1);  
 until i = max_num  
 end repeat;  
 commit;  
 end$$
delimiter ;

创建表innodb引擎

create table sys_user_innodb engine=myisam auto_increment=1000001 default charset=utf8 as select * from sys_user_myisam;

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网