mysql 添加大量测试数据
mysql 添加大量测试数据
场景
针对于大量测试数据插入,检测sql执行速度
第一步:建表
// 测试表
CREATE TABLEuser(
idint(11) NOT NULL AUTO_INCREMENT,
cardvarchar(32) DEFAULT NULL COMMENT '编号',
namevarchar(32) DEFAULT NULL COMMENT '姓名',
equipment_idint(11) DEFAULT NULL COMMENT '设备id',
area_idint(10) DEFAULT NULL COMMENT '区域ID',
start_timedatetime DEFAULT NULL COMMENT '开始时间',
end_timedatetime DEFAULT NULL COMMENT '结束时间',
ifdelint(11) DEFAULT '0' COMMENT '0:使用,1:已移除',
PRIMARY KEY (id)
) ENGINE=MYISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COMMENT='用户管理';
注意插入大量数据时建议将引擎设置成 MYISAM,如果表已经建好,可以参考修改引擎
第二步:创建存储过程
//创建存储过程,插入数据
CREATE PROCEDUREinsert_data_p(IN num INT)
BEGIN
DECLARE n INT DEFAULT 1;
WHILE n <= num DO
INSERT INTO user( card, name, equipment_id, area_id, start_time)
VALUES( concat('A',n), concat('li',n), 0, 0, concat('2019-0',floor(8+rand()5),'-0', floor(1+rand()30),' ', floor(10+rand()10),':',floor(10+rand()49),':',floor(10+rand()49)));
set n=n+1;
end while;
UPDATE user SET end_time=DATE_ADD(start_time, INTERVAL rand()60 DAY)
END;
该存储过程较为简单,根据传入的num值,进行循环添加数据。其中涉及到的一些mysql函数,暂不做介绍,之后会专门写一篇。
第三步:调用存储过程,添加数据
//插入数据
CALL insert_data_p(1000000);
传入的数字决定了插入数据库的条数
第四步:修改引擎
将引擎修改为INNODB
ALTER TABLE
userENGINE=INNODB;
如果要插入大量数据,建议先将表引擎修改为:MYISAM,待数据插入完成后再修改回mysql默认引擎:INNODB
ALTER TABLE
userENGINE=MYISAM;
mysql 添加大量测试数据的更多相关文章
- ubuntu下mysql添加用户的问题
在ubuntu下使用命令: $:sudo apt-get install mysql-server 命令安装的Mysql 版本为:Server version: 5.7.13-0ubuntu0.16. ...
- MySQL添加字段和删除字段
MySQL添加字段应该如何实现呢?这是很多刚刚接触MySQL数据库的新人都提到过的问题,下面就为您介绍MySQL添加字段和删除字段的方法,希望对您能有所启迪. MySQL添加字段: alter tab ...
- mysql添加用户和用户权限
Mysql添加用户使用可以对mysql数据库用户表有操作权限的用户名登陆mysqlinsert into user(Host,User,Password) values('%','name','pas ...
- mysql添加外键无法成功的原因
最近很忙,碰到很多问题都忘了发上来做个记录,现在又忘了,FUCK,现在碰到一个问题, 就是mysql添加外键总是无法成功,我什么都试了,就是没注意signed和unsigned,FUCK,因为我用my ...
- MySQL添加用户错误:ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value解决方法
MySQL添加新用户时出现如下报错,如下图: 经过查资料了解到: mysql用户表的中某些字段不能为空,没有默认值,其实是操作错误,mysql添加用户是不能这样直接insert user表的. 改为以 ...
- Windows系统下MySQL添加到系统服务方法(mysql解压版)
MySQL软件版本:64位 5.7.12 1.首先配置MySQL的环境变量,在系统环境变量Path的开头添加MySQL的bin目录的路径,以“;”结束,我的路径配置如下: 2.修改MySQL根目录下的 ...
- 转载:mysql添加用户、删除用户、授权、修改密码
mysql添加用户.删除用户.授权.修改密码等 MySql中添加用户,新建数据库,用户授权,删除用户,修改密码1.新建用户. //登录MYSQL @>mysql -u root -p @> ...
- MySQL中MyISAM与InnoDB区别及选择,mysql添加外键
InnoDB:支持事务处理等不加锁读取支持外键支持行锁不支持FULLTEXT类型的索引不保存表的具体行数,扫描表来计算有多少行DELETE 表时,是一行一行的删除InnoDB 把数据和索引存放在表空间 ...
- MySQL添加字段和修改字段
MySQL添加字段的方法并不复杂,下面将为您详细介绍MYSQL添加字段和修改字段等操作的实现方法,希望对您学习MySQL添加字段方面会有所帮助. 1添加表字段 alter table table1 a ...
随机推荐
- [loj 6496]「雅礼集训 2018 Day1」仙人掌
传送门 Description 给出一张 \(n\)个点 \(m\)条边的无向连通图,其中每条边至多属于一个简单环,保证没有自环,可能有重边.你需要为其中每条边定向,其中第 \(i\)个点的出度不能超 ...
- redis渐进式 rehash
转载(http://redisbook.com/preview/dict/incremental_rehashing.html) 上一节说过, 扩展或收缩哈希表需要将 ht[0] 里面的所有键值对 r ...
- pyinstaller在64位系统下打包32位程序
使用环境说明:win10 64位,已安装python3.6-64位版本 遇到的问题:win10 64位打包成exe文件后,不能在32位系统运行 需求:使用python打包生成exe文件,win64位和 ...
- ssh端口映射总结
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/boliang319/article/det ...
- 咏南跨平台中间件支持LINUX和WINDOWS插件架构
咏南跨平台中间件支持LINUX和WINDOWS插件架构
- shell获取今天、明天、昨天、n天、周、月、年日期
1.获取今天日期 $ date -d now +%Y-%m-%d 或者$ date +%F 1 2 2.获取明天日期 $ date -d next-day +%Y-%m-%d$ date - ...
- Activity: launchMode 和 Intent.FLAG_ACTIVITY_CLEAR_TOP
Activity 的 launchMode: 1. standard: 标准模式 这种启动模式为标准模式,也是默认模式.每当我们启动一个Activity,系统就会相应的创建一个实例,不管这个实例是否已 ...
- Flutter -------- 加载本地图片资源和网络图片
在Flutter加载本地图片资源 在Flutter项目目录下创建文件夹 images ,在文件夹中添加几张图片 指定资源 pubspec.yaml文件中 version: 1.0.0+1 enviro ...
- [转]【Windows小技巧】批量重命名文件
注:如果文件名包含空格,命令应写成ren "s0 (1).gif" s001.gif,简而言之,就是加上双引号!!!原因:系统将s0和(1).gif认为是两个参数,再加上后面的s0 ...
- Hive小文件处理
小文件是如何产生的: 动态分区插入数据的时候,会产生大量的小文件,从而导致map数量的暴增 数据源本身就包含有大量的小文件 reduce个数越多,生成的小文件也越多 小文件的危害: 从HIVE角度来看 ...