当前位置: 首页 > news >正文

南昌公司网站开发才艺多网站建设公司

南昌公司网站开发,才艺多网站建设公司,小程序模板在哪里买,自己建网站买玩具文章目录 前言一、表二、使用函数生成设置允许创建函数产生随机字符串产生随机数字 三、创建存储过程插入角色表插入用户表 四、执行存储过程小结五、使用 Navicat自带的数据生成 前言 在开发过程中我们不管是用来测试性能还是在生产环境中页面展示好看一点, 又或者学习验证某…

文章目录

  • 前言
  • 一、表
  • 二、使用函数生成
    • 设置允许创建函数
      • 产生随机字符串
      • 产生随机数字
  • 三、创建存储过程
    • 插入角色表
    • 插入用户表
  • 四、执行存储过程
  • 小结
  • 五、使用 Navicat自带的数据生成

前言

在开发过程中我们不管是用来测试性能还是在生产环境中页面展示好看一点, 又或者学习验证某一知识点经常需要一些测试数据, 这个时候如果手敲的话, 十行二十行还好, 多了就很死亡了, 接下来介绍两种常用的MySQL测试数据批量生成方式

  • 存储方式+函数
  • Navicat的数据生成

一、表

准备了两张表

  • 角色表:

    • id: 自增长
    • role_name: 随机字符串, 不允许重复
    • orders: 1-1000任意数字
  • 用户表:

    • id: 自增长
    • username: 随机字符串, 不允许重复
    • password: 随机字符串, 允许重复
    • role_id: 1-10w之间的任意数字
  • 建表语句:

CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(255) DEFAULT NULL COMMENT '用户名',`role_id` int(11) DEFAULT NULL COMMENT '角色id',`password` varchar(255) DEFAULT NULL COMMENT '密码',`salt` varchar(255) DEFAULT NULL COMMENT '盐',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;CREATE TABLE `role` (`id` int(11) NOT NULL AUTO_INCREMENT,`role_name` varchar(255) DEFAULT NULL COMMENT '角色名',`orders` int(11) DEFAULT NULL COMMENT '排序权重\r\n',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

二、使用函数生成

通过存储过程快速插入, 通过函数保证数据不重复

设置允许创建函数

查看 MySQL是否允许创建函数

SHOW VARIABLES LIKE 'log_bin_trust_function_creators';

在这里插入图片描述

结果如图所示, 我们使用以下命令将创建函数功能打开(global-所有session都生效)

SET GLOBAL log_bin_trust_function_creators=1; 

在这里插入图片描述

这个时候再一次查询就会显示已打开
在这里插入图片描述

产生随机字符串

-- 随机产生字符串
DELIMITER $$
CREATE FUNCTION rand_string(n INT) RETURNS VARCHAR(255)
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 $$-- 假如要删除
-- drop function rand_string;

产生随机数字

-- 用于随机产生区间数字
DELIMITER $$
CREATE FUNCTION rand_num (from_num INT ,to_num INT) RETURNS INT(11)
BEGIN   DECLARE i INT DEFAULT 0;  SET i = FLOOR(from_num +RAND()*(to_num -from_num+1));
RETURN i;  
END$$-- 假如要删除
-- drop function rand_num;

三、创建存储过程

插入角色表

-- 插入角色数据
DELIMITER $$
CREATE PROCEDURE insert_role(max_num INT)
BEGIN  DECLARE i INT DEFAULT 0;   SET autocommit = 0;    REPEAT  SET i = i + 1;  INSERT INTO role ( role_name,orders ) VALUES (rand_string(8),rand_num(1,5000)); UNTIL i = max_num  END REPEAT;  COMMIT;  
END$$-- 删除
-- DELIMITER ;
-- drop PROCEDURE insert_role;

插入用户表

-- 插入用户数据
DELIMITER $$
CREATE PROCEDURE  insert_user(START INT, max_num INT)
BEGIN  DECLARE i INT DEFAULT 0;   SET autocommit = 0;    REPEAT  SET i = i + 1;  INSERT INTO user (username, role_id, password, salt ) VALUES (rand_string(8) ,rand_num(1,100000), rand_string(10), rand_string(10));  UNTIL i = max_num  END REPEAT;  COMMIT;  
END$$-- 删除
-- DELIMITER ;
-- drop PROCEDURE insert_user;

四、执行存储过程

-- 执行存储过程,往dept表添加10万条数据
CALL insert_role(100000); -- 执行存储过程,往emp表添加100万条数据,编号从100000开始
CALL insert_user(100000,1100000); 

小结

执行用时 10w数据差不多半分钟, 100w数据超过了20分钟, 同时 user的存储还卡死很久…
最后都成功新增, 但是自动递增值和行数不一致, 这个我也不知道因为啥…
在这里插入图片描述

数据展示

  • role表

在这里插入图片描述

  • user表

在这里插入图片描述

五、使用 Navicat自带的数据生成

接下来我们使用 Navicat的数据生成

在这里插入图片描述
在这里插入图片描述

直接下一步, 然后选择对应的两张表生成行数和对应的生成规则, 基于之前的执行速度, 这次 role生成 1w数据, user生成 10w数据
对于字符串类型的字段, 我们可以设置他的随机数据生成器, 根据需要进行选择
在这里插入图片描述

例如角色名称, 选择了 职位名称 还可以进行是否包含 null 的选择等
在这里插入图片描述

但是如果是 姓名 那么就会让你选择是否唯一
在这里插入图片描述

数字的话会让你选择范围, 默认值等
在这里插入图片描述

等确定好了, 我们就可以点击右下角进行生成随机测试数据
在这里插入图片描述

通过结果可以看到生成十一万测试数据一共用时十一秒, 比第一种方法速度快很多, 推荐使用

http://www.yayakq.cn/news/564996/

相关文章:

  • 站长网站被跳转怎么办电商网站建设简单代码网页
  • 网页设计购物网站正邦的网站建设
  • 哪个网站做处理货深圳网站设计推荐刻
  • 为什么有些网站看不到百度快照网站怎么做一盘优化排名
  • 泰安集团网站建设方案建筑英才网首页
  • 网站设计与开发专业wordpress电脑主题
  • 旅行社网站的建设开题报告k8team wordpress
  • 杭州做网站价格百度软件开放平台
  • 网站建设seo视频教程免费云电脑永久使用
  • 石家庄校园兼职网站建设网站建设入什么费用
  • 湖南省建设工程招标网莱阳seo排名
  • 建设网站需要哪些设备无锡网站制作无锡做网站
  • 成都网站制作电话望野博物馆
  • 有哪些可以做翻译的网站国内软件外包公司
  • 跨境电商软件erp排名南京seo招聘
  • 莱芜做网站的商家有哪些廊坊关键词优化
  • 内衣网站建设推广dz做电影网站
  • 免费网站建设品牌好微网站 尺寸
  • 网站开发语言在那看出来重庆网站建
  • 重庆忠县网站建设公司推荐网站怎么投放广告
  • 游戏网站怎么做seoapp制作收费价目表
  • dede图片网站模板php做的网站怎么上传
  • 用html做网站免费企业建站系统源码
  • wordpress主题结合搭建网站seo
  • 在线做logo的网站浙江省建设执业注册中心网站
  • 会员型网站石嘴山网站定制开发建设
  • 昆明企业自助建站ftp上传网站之后
  • 云南做商城网站多少钱wordpress 萌化
  • 59网站一起做网店女鞋网站备案核验照片背景
  • 做一个专业的网站多少钱凡科网电脑版怎么做网站