mysql如何自动生成大量数据
程序员文章站
2022-04-15 21:43:53
...
mysql自动生成大量数据
为了学习验证高性能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;
以上就是mysql如何自动生成大量数据的详细内容,更多请关注其它相关文章!
上一篇: 移动平台开发需要的记录(续)_html/css_WEB-ITnose
下一篇: css如何改变鼠标
推荐阅读
-
教你如何在Mac上安装mysql数据库
-
光脚丫学LINQ(042):如何将列表示为由数据库生成的列
-
mysql-有数据库表结构,但是属性太多,如何自动导入建表
-
PHP+MYSQL插入数据 检查是否重复,该如何解决
-
php将mysql数据库整库导出生成sql文件的具体实现_PHP
-
获得的数据如何存不数据库(mysql)里,与数据库端口?请高人指点,多谢
-
在Ubuntu下的MySQL数据库如何更改存储位置_MySQL
-
mysql-现在项目开发,由实体类生成数据表 , 还是由数据表生成实体类多????
-
mysql - 怎样记录thinkphp函数生成的数据库查询语句呢?
-
mysql如何将多行数据合并成一行_MySQL