千家信息网

MySQL中怎么按表创建千万级的压测数据

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这期内容当中小编将会给大家带来有关MySQL中怎么按表创建千万级的压测数据,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. 准备测试表CREATE TABLE `
千家信息网最后更新 2025年02月03日MySQL中怎么按表创建千万级的压测数据

这期内容当中小编将会给大家带来有关MySQL中怎么按表创建千万级的压测数据,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

1. 准备测试表

CREATE TABLE `username` (     `uid` INT( 11 ) UNSIGNED NOT NULL default 1235678901,     `username` VARCHAR( 20 ) ,     `email` VARCHAR( 30 ) ,     `password` VARCHAR( 32 ) ,     `birthday` date,     `gender` VARCHAR(10) ,     avatar MEDIUMBLOB,     PRIMARY KEY ( `uid` ) ) ENGINE = INNODB DEFAULT CHARSET=utf8;

2. 随机生成数据

MySQL里面自带一个随机数生成的函数RAND(),它能生成0-1的浮点数

RAND函数生成随机数:

  • SET GLOBAL log_bin_trust_function_creators = 1;

  • CREATE DEFINER = `root` @`%` FUNCTION `rand_string` ( n INT ) RETURNS VARCHAR ( 255 ) CHARSET utf8 BEGIN

  • DECLARE

  • chars_str VARCHAR ( 100 ) DEFAULT 'hwbtestABCDEFG23141HIJ6712dfghjkqwevbnqmwerqwerqwreqw214123e1214c12dssaf89';

  • 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( ) * 80 ), 1 ) );

  • SET ii = i + 1;

  • END WHILE;

  • RETURN return_str;

  • END;

  • 详解MySQL如何按表创建<span><span><span><i @qq.com')</p><p><strong>4. 随机生成DATE和DATETIME类型</strong></p><p>(1) DATE类型</p><pre>CREATE DEFINER = `root` @`%` FUNCTION `randDate` ( ) RETURNS VARCHAR ( 255 ) CHARSET utf8 BEGIN     DECLARE         aDate CHAR ( 10 ) DEFAULT ''; /*CONCAT (1949 + FLOOR( ( RAND( ) * 70 ) ) 表示 1949到2019的随机数据      --L PAD ( FLOOR( 1 + ( RAND( ) * 12 ) ), 2, 0 ) 表示月份的生成,小于 10自动补0      --L PAD ( FLOOR( 3 + ( RAND( ) * 8 ) ), 2, 0 ) ) 表示 3号到10号的随机数据 */          SET aDate = CONCAT(         1949 + FLOOR( ( RAND( ) * 70 ) ),         '-',         LPAD( FLOOR( 1 + ( RAND( ) * 12 ) ), 2, 0 ),         '-',         LPAD( FLOOR( 3 + ( RAND( ) * 8 ) ), 2, 0 )      ); RETURN aDate; END;</pre><p><img alt=

  • Returns the string str:str, left-padded with the string padstr to a length of len characters.

  • If str is longer than len:N, the return value is shortened to len characters.

  • mysql> SELECT LPAD('hi',4,'??');

  • -> '??hi'

  • mysql> SELECT LPAD('hi',1,'??');

  • -> 'h'

  • (2) DATETIME类型

    在刚刚写好的randDate上进行改造:

    CREATE DEFINER = `root` @`%` FUNCTION `randDateTime` ( ) RETURNS VARCHAR ( 255 ) CHARSET utf8 BEGIN     DECLARE         aDateTime CHAR ( 19 ) DEFAULT '';          SET aDateTime = CONCAT(         CONCAT(             1949 + FLOOR( ( RAND( ) * 70 ) ),             '-',             LPAD( FLOOR( 1 + ( RAND( ) * 12 ) ), 2, 0 ),             '-',             LPAD( FLOOR( 3 + ( RAND( ) * 8 ) ), 2, 0 )          ),         ' ',         CONCAT(             LPAD( FLOOR( 0 + ( RAND( ) * 23 ) ), 2, 0 ),             ':',             LPAD( FLOOR( 0 + ( RAND( ) * 60 ) ), 2, 0 ),             ':',             LPAD( FLOOR( 0 + ( RAND( ) * 60 ) ), 2, 0 )          )      ); RETURN aDateTime; END;

    5. 将数据循环插入

    定义将数据循环的存储过程:

    DELIMITER // CREATE PROCEDURE insertUser ( )  BEGIN     DECLARE         num INT;          SET num = 1;     WHILE             num < 100000 DO             INSERT INTO username ( uid,username, email, PASSWORD, birthday, gender, avatar )         VALUES             ( num,                 rand_string ( 15 ),                 concat( rand_string ( 5 ), '@qq.com' ),                 rand_string ( 32 ),                 randDate ( ),                 '男',             NULL              );                  SET numnum = num + 1;              END WHILE;     commit; END; //

    调用存储过程:

    CALL insertUser;

上述就是小编为大家分享的MySQL中怎么按表创建千万级的压测数据了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

数据 生成 类型 内容 函数 过程 随机数 分析 存储 循环 专业 中小 内容丰富 就是 文章 更多 月份 点数 知识 篇文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全作文大学 小米路由器改装打印机服务器 数据库有哪些实现方法 青浦区通用软件开发试验设备 福州电商小程序软件开发 服务器交换机怎么设置光口和电口 redis数据库有几种数据类型 宝山区综合软件开发管理方法 航天软件安全接入服务器地址 软件开发费在财务上需要入库 昌平区网络技术排名靠前 服务器做win7赚钱吗 数据库及应用第二版答案 软件开发是什么学科 一万服务器管理 临海网络安全测评文件 贵阳http服务器 深圳粤十互联网科技有限公司 中国农业银行网络安全措施 用命令新建数据库主文件组 学django之前要学数据库么 松江区管理软件开发报价表 你的服务器真的很安全吗 小程序云开发需要服务器吗 太保网络安全知识竞赛答案 聊城商业软件开发 三级网络技术一个礼拜 软件开发和UI有什么区别 创建数据库和表用到的知识点 免费的云服务器有没有
0