Linux MySQL 高速造数据脚本 数据库 2024年6月14日 15:34 夏至未至 516 当前内容 6283 字,在路上,马上到,马上到 ### 目录 [TOC] ### 脚本特点 #### 优点 1. 库名、表名支持自定义 2. 库下表的数量、表中行数量支持自定义 3. 例用存储过程拷贝表的方式,高速插入数据,抛弃了insert的方式插表 4. 配置简单,无需调试,开箱即用,适用于单库造数据 #### 缺点 1. 目前只支持单库造数据 2. 数据单一,重复 ### 脚本升级 [多库串行多表并行造MySQL大数据](https://www.codecomeon.com/posts/120/ "多库串行多表并行造MySQL大数据"):即库之间为串行,但库下多表之间为并行插入数据,[点击查看](https://www.codecomeon.com/posts/120/ "点击查看")。 ### 使用步骤 #### 创建脚本 复制文末脚本内容,创建脚本,这里假设为:mysql.sh [root@localhost data]# ll total 8 -rw-r--r--. 1 root root 4107 Feb 10 01:40 mysql.sh [root@localhost data]# #### 脚本配置 以下内容为整个脚本唯一需要修改的地方,其他根本不用动: #========================================================# #------------------1. 连接数据库参数配置-----------------# # 数据库实例用户 DB_USER_NAME=root # 数据库实例密码 DB_PASSWORD=123456 # 数据库实例端口号 DB_PORT=3306 # 据库实例IP DB_HOST=localhost #-------------------2. 造数据参数配置---------------------# # 单库下表的个数(默认10个) TB_NUMBER=10 # 单表插多少行数据(默认插5行) TB_LINE_NUMBER=5 # 单库名称(默认:codedb) DB_NAME=codedb # 单库中表基础名(默认:code_tb_)[实际表名=基础表名 + 数字] TB_BASE_NAME=code_tb_ #------------------自定义配置结束,其他勿动---------------# #=========================================================# 其中需要配置的分为两类: 1. 连接数据库参数配置:连接数据的参数,根本不用说 2. 造数据参数配置:目前脚本只支持单库下多个表造数据,所以只需要配置表的个数、表下行数、基础表名、单一数据库名即可 ### 执行效果 [root@localhost data]# sh mysql.sh 正在飞速插入数据... [提示:插入完成后,会统计本次耗时,请关注数据量变化] mysql: [Warning] Using a password on the command line interface can be insecure. real 0m0.591s user 0m0.008s sys 0m0.012s [root@localhost data]# ### 测试结果 [root@localhost /]# mysql -uroot -p123456 -S /var/lib/mysql/mysql.sock mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 110 Server version: 5.7.37 MySQL Community Server (GPL) Copyright (c) 2000, 2022, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | codedb | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec) mysql> use codedb; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +------------------+ | Tables_in_codedb | +------------------+ | code_tb_1001 | | code_tb_1002 | | code_tb_1003 | | code_tb_1004 | | code_tb_1005 | | code_tb_1006 | | code_tb_1007 | | code_tb_1008 | | code_tb_1009 | | code_tb_1010 | +------------------+ 10 rows in set (0.00 sec) mysql> select count(*) from code_tb_1001; +----------+ | count(*) | +----------+ | 5 | +----------+ 1 row in set (0.25 sec) mysql> ### 脚本源码 以下脚本均为实测,[欢迎留言指正](https://www.codecomeon.com/posts/1/ "欢迎留言指正"). #********************************************************* #* Author : codecomeon #* Email : codecomeon@qq.com #* Site: : https://www.codecomeon.com/ #* Last modified : 2021-10-15 : 23:22:15 #* Description : 单库多表串行造MySQL大数据 #* ******************************************************* CURRENT_PATH=$(cd "$(dirname "$0")"; pwd) #========================================================# #------------------1. 连接数据库参数配置-----------------# # 数据库实例用户 DB_USER_NAME=root # 数据库实例密码 DB_PASSWORD=123456 # 数据库实例端口号 DB_PORT=3306 # 据库实例IP DB_HOST=localhost #-------------------2. 造数据参数配置---------------------# # 单库下表的个数(默认10个) TB_NUMBER=10 # 单表插多少行数据(默认插5行) TB_LINE_NUMBER=5 # 单库名称(默认:codedb) DB_NAME=codedb # 单库中表基础名(默认:code_tb_)[实际表名=基础表名 + 数字] TB_BASE_NAME=code_tb_ #------------------自定义配置结束,其他勿动---------------# #=========================================================# CUSER=$(id |cut -d"(" -f2 | cut -d ")" -f1) if [ "$CUSER" != "root" ]; then echo "Permission: Please switch to the root user" exit 1 fi MY_SQL_FILE=$CURRENT_PATH/.bigdata.sql if [ ! -f "$MY_SQL_FILE" ]; then touch "$MY_SQL_FILE" fi echo "DROP DATABASE IF EXISTS \`$DB_NAME\`;" > $MY_SQL_FILE echo "CREATE DATABASE \`$DB_NAME\`;" >> $MY_SQL_FILE echo "USE \`$DB_NAME\`;" >> $MY_SQL_FILE BASE_TB_NAME=${TB_BASE_NAME}1001 echo "CREATE TABLE \`$BASE_TB_NAME\`(" >> $MY_SQL_FILE echo " \`id\` varchar(100) NOT NULL," >> $MY_SQL_FILE echo " \`a_id\` varchar(100) NOT NULL," >> $MY_SQL_FILE echo " \`b_id\` varchar(100) NOT NULL," >> $MY_SQL_FILE echo " \`c_id\` varchar(100) NOT NULL," >> $MY_SQL_FILE echo " \`d_id\` varchar(100) NOT NULL," >> $MY_SQL_FILE echo " \`e_id\` varchar(100) NOT NULL," >> $MY_SQL_FILE echo " \`f_id\` varchar(100) NOT NULL," >> $MY_SQL_FILE echo " \`g_id\` varchar(100) NOT NULL" >> $MY_SQL_FILE echo ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" >> $MY_SQL_FILE echo "DROP PROCEDURE IF EXISTS create_big_data;" >> $MY_SQL_FILE echo "DELIMITER \$\$" >> $MY_SQL_FILE echo "CREATE PROCEDURE create_big_data(IN lineNumber INT, IN tbNumber INT)" >> $MY_SQL_FILE echo "BEGIN" >> $MY_SQL_FILE echo " DECLARE A INT DEFAULT 0;" >> $MY_SQL_FILE echo " DECLARE B INT DEFAULT 2;" >> $MY_SQL_FILE echo " DECLARE v_tables varChar(32);" >> $MY_SQL_FILE echo " DECLARE value varchar(100);" >> $MY_SQL_FILE echo " SET val ¥3.00 解锁全文 下载资源 本文标题: Linux MySQL 高速造数据脚本 本文作者: 夏至未至 发布时间: 2024年6月14日 15:34 最近更新: 2024年6月14日 15:34 原文链接: 许可协议: 署名-非商业性-禁止演绎 4.0 国际(CC BY-NC-ND 4.0) 请按协议转载并保留原文链接及作者 MySQL(28) 下一个 lib/ld-linux.so.2: bad ELF interpreter 当前文章评论暂未开放,请移步至留言处留言。