天天看点

简单3步快速生成千万级别mysql测试数据库,模拟电商数据

https://blog.csdn.net/wuda0112/article/details/88387735?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.baidujs&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.baidujs

mysql-tester的工具,可以生成模拟电商的数据库,大数据量,具有关联关系!

而且只需要三步就可以生成数据了!

先上一张自己使用后的数据库监控图

在这里插入图片描述

简介

    生成测试数据,总共有16个表,生成的数据规模是可配置的,比如指定生成100万用户,并且数据之间有关联关系,因此可以测试sql join语句。

    用于数据库压力测试

很多工具要么生成的数据是单表,即数据之间没有关联关系,要么数据量较小,对于很多测试看不到效果,本项目的目的就是既生成有关联关系的数据,又可以客制化数据规模!

数据量配置

查看 --user-count 和 --max-item-per-user 两个选项的说明

快速开始

下载可执行jar包,下载链接

    jar下载

生成数据库表,sql脚本查看

    脚本文件

输入命令,启动.默认连接到本地mysql,即: localhost:3306

java -jar mysql-tester-${VERSION}.jar --mysql-username=用户名 --mysql-password=密码

支持的选项

    --max-item-per-user <arg>

                                   每个用户最多有多少商品数;在生成数据时,随机为每个用户生成商品,数量取值范围是

                                   [0,MAX](default=10).比如默认生成10000个用户,每个用户

                                   最多10个商品,那么大致就可以知道生成的数据规模

    --mysql-max-connection <arg>   mysql最大连接数(default=25)

    --mysql-password <arg>         mysql password

    --mysql-url <arg>

                                   mysql连接url(default=jdbc:mysql://localho

                                   st:3306/?serverTimezone=UTC)

    --mysql-username <arg>         mysql username

    --thread <thread>              生成数据的线程数(default=50)

    --user-count <arg>

                                   用户表生成多少行记录,同时也是店铺表和仓库表的记录数,因为一个用户只拥有一个店

                                   铺和一个仓库(default=10000),当生成的记录数达到该值时,数据生成

                                   任务结束

数据库简介

数据库表选自于我的另外一个中台项目foundation

foundation_user

        user,用户表

        individual_user_general,个人用户基本信息

        user_account,用户账号信息,适用各种类型的用户

        user_email,用户的email

        user_phone,用户的电话

foundation_store

        store,店铺表

        store_general,店铺基本信息

        store_user_relationship,如果把用户ID字段放在store表中,表明店铺属于某个用户,但是如果有多个用户可以管理这个店铺呢?有种做法是一个用户作为另一个用户的子账号;也可以建立用户与店铺的关联关系,这样感觉更符合逻辑。把用户IID放在store表,可以很明确的表明店铺的owner,如果是用关联关系表的话,就需要明确的标明哪个用户是owner,哪些用户只是管理这个店铺的。

foundation_item

        item,物品(商品)表

        item_general,物品基本信息

        item_description,物品描述信息

        item_variation,物品规格

foundation_commons

        phone,电话表

        email,邮箱表

        property_key,属性的key

        property_value,属性的值

项目github地址

mysql-tester

https://codechina.csdn.net/mirrors/wuda0112/mysql-tester?utm_source=csdn_github_accelerator

继续阅读