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

构建数据库测试数据——mysql

  1. 建表脚本
-- 建表
CREATE TABLE `test_table` (`id` INT(11) NOT NULL AUTO_INCREMENT,`varchar_col` VARCHAR(50),`char_col` CHAR(10),`text_col` TEXT,`tinyint_col` TINYINT(4),`smallint_col` SMALLINT(6),`mediumint_col` MEDIUMINT(9),`int_col` INT(11),`bigint_col` BIGINT(20),`float_col` FLOAT(10,2),`double_col` DOUBLE(10,2),`decimal_col` DECIMAL(10,2),`date_col` DATE,`datetime_col` DATETIME,`timestamp_col` TIMESTAMP,`time_col` TIME,`year_col` YEAR(4),`binary_col` BINARY(10),`varbinary_col` VARBINARY(50),`blob_col` BLOB,`enum_col` ENUM('value1', 'value2', 'value3'),`set_col` SET('value1', 'value2', 'value3'),PRIMARY KEY (`id`)
);
  1. 构建一亿数据
-- 插入数据
-- 禁用日志和外键约束,加快插入速度
SET autocommit=0;
SET unique_checks=0;
SET foreign_key_checks=0;-- 循环插入一亿条数据
DELIMITER $$
DROP PROCEDURE IF EXISTS insert_test_table $$
CREATE PROCEDURE insert_test_table(IN num_rows INT)
BEGINDECLARE i INT DEFAULT 1;WHILE i <= num_rows DOINSERT INTO test_table (varchar_col, char_col, text_col,tinyint_col, smallint_col, mediumint_col, int_col, bigint_col,float_col, double_col, decimal_col,date_col, datetime_col, timestamp_col, time_col, year_col,binary_col, varbinary_col, blob_col,enum_col, set_col) VALUES (CONCAT('varchar_', i), CONCAT('char_', i), CONCAT('text_', i),i MOD 128, i MOD 32768, i MOD 8388608, i MOD 2147483648,i MOD 9223372036854775808,(i MOD 100) + (i MOD 100 / 100),(i MOD 1000) + (i MOD 1000 / 100),(i MOD 10000) + (i MOD 10000 / 100),'2023-02-22', NOW(), NOW(), NOW(), '2023',LEFT(REPEAT('binary', i MOD 10), 10), LEFT(REPEAT('varbinary', i MOD 50), 50),LEFT(REPEAT('blob', i MOD 100), 100),ELT(i MOD 3 + 1, 'value1', 'value2', 'value3'),ELT(i MOD 3 + 1, 'value1', 'value2', 'value3', NULL));SET i = i + 1;IF i % 1000 = 0 THENCOMMIT;END IF;END WHILE;COMMIT;
END $$
DELIMITER ;-- 调用存储过程插入一亿条数据
CALL insert_test_table(100000000);-- 启用日志和外键约束
SET autocommit=1;
SET unique_checks=1;
SET foreign_key_checks=1;
http://www.lryc.cn/news/24874.html

相关文章:

  • 你想要的Android性能优化系列:启动优化 !
  • python3的基础入门3:基本数据类型
  • 消息队列原理与实战-学习笔记
  • Linux权限相关知识(大量图文展示,及详细操作)
  • Ep_操作系统面试题-什么是协程
  • 在C#中使用互斥量解决多线程访问共享资源的冲突问题
  • JavaEE进阶第六课:SpringBoot配置文件
  • MySQL基础(一)SQL分类、导入、SELECT语句,运算符
  • 反激与正激的区别
  • 王道操作系统课代表 - 考研计算机 第四章 文件管理 究极精华总结笔记
  • 前端开发规范,你真的了解吗?一起来学习一下前端开发规范,让你的代码高级起来!
  • Licode—基于webrtc的SFU/MCU实现
  • 开发运维工具推荐 --- 解决远程访问局域网服务的问题。开发调试推荐
  • 【华为OD机试 】单词倒序(C++ Java JS Python)
  • PLC 诊断故障的基本原理
  • QT打开外部程序并嵌入Qt子窗口的缺点
  • 如何系统地学习 C++ 语言?
  • 【数据结构】单链表
  • Windows 右键菜单扩展容器 [开源]
  • 爆文制造机!小红书热榜3个方向,告诉你选题诀窍!
  • 【Web安全社工篇】——水坑攻击
  • SpringBoot 整合 MongoDB 实现数据的增删改查!
  • VUE前端常问面试题
  • c++中map/unordered_map的不同遍历方式以及结构化绑定
  • Kafka系列之:Kraft模式
  • 动态规划:leetcode 139.单词拆分、多重背包问题
  • Stable Diffusion原理详解
  • webpack高级配置
  • jQuery 事件
  • 【批处理脚本】-2.3-解析地址命令arp