mysql利用存储过程批量插入一千万数据(半小时)
示例:
向user
表中插入一千万条数据,其中user_id
11位手机号随机,可以重复;age
为18-27之间;count
随机金额,八位小数;status
二百万数据为1,八百万数据为0。
-- 如果该名字存储过程已存在,则删除
DROP PROCEDURE IF EXISTS proc_initData1;
-- 创建
CREATE PROCEDURE proc_initData1 ( ) BEGINDECLAREi INT DEFAULT 0;DECLAREuid VARCHAR ( 255 ) DEFAULT 0;DECLAREcount DECIMAL(20,8) DEFAULT 0;DECLAREop INT DEFAULT 0;DECLAREage INT DEFAULT 0;START TRANSACTION;WHILEi <= 10000000 DOSELECTCONCAT( '1', CEILING( RAND( ) * 9000000000+1000000000 ) ) INTO uid;SELECTFLOOR( 18 + ( RAND( ) * 9 ) ) INTO age;SELECTROUND( ( 10 + ( RAND( ) * 1001 ) ), 8 ) INTO count;IFi % 5 = 0 THENINSERT INTO user ( user_id, age, count, status )VALUES( uid, age, count, 1);ELSE INSERT INTO ryw_intelligent_dog ( user_id, age, count, status)VALUES( uid, age, count, 0 );END IF;SET i = i + 1;END WHILE;COMMIT;END-- 调用
CALL proc_initData1 ( );-- 删除表数据
truncate table user;
亲测需要半小时左右,前提删除索引,引擎innodb。
总结:在开始编写时并未使用事物手动提交,导致数据量插入非常慢。在批量插入大量数据时,要删除索引,并开启事物手动提交。
mysql利用存储过程批量插入一千万数据(半小时)相关推荐
- mysql利用存储过程批量插入数据
-- 如果存在此存储过程则删掉 DROP PROCEDURE IF EXISTS proc_initData; -- 定好结束符为"$" DELIMITER $ -- 创建 CRE ...
- MySQL使用存储过程批量插入百(千)万测试数据
最近发现蝉知的全文检索不是用的第三方类似于sphinx或xunsearch这样的全文检索组件,所以我本着好奇心测试了一下它的效率... 测试结果就不说了,主要说下折腾这1000万测试数据的过程 MyS ...
- Mysql通过存储过程批量插入数据
创建表 DROP TABLE if exists employees_partition; CREATE TABLE if not exists `employees_partition` (`id` ...
- MySQL使用存储过程批量插入数据
# 1. 创建学生表和课程表 create table `student_info`( `id` int(11) not null auto_increment, `student_id` int n ...
- mysql命令行批量添加数据_mysql命令行批量插入100条数据命令
先介绍一个关键字的使用: delimiter 定好结束符为"$$",(定义的时候需要加上一个空格) 然后最后又定义为";", MYSQL的默认结束符为" ...
- MySQL利用存储过程自动生成千万条数据
文章目录 前言 一.实现思路 二.实现步骤 1.创建数据库 2.创建存储表和内存表 3.创建所需函数 4.创建存储过程 5.调用存储过程插入数据 6.统计数据库 拓展 总结 前 ...
- mysql测试数据100w_利用MySQL存储过程批量插入100W条测试数据
这里将告诉您利用MySQL存储过程批量插入100W条测试数据,具体完成步骤:DROP PROCEDURE IF EXISTS insert_batch; CREATE PROCEDURE insert ...
- mysql 存储过程 批量导入数据_sql 利用存储过程批量导入数据
什么是 存储过程(stored procedure)是一组为了完成特定功能的sql语句集,是利用sql server所提供的transact-sql语言所编写的程序.经编译后存储在中.存储过程是数据库 ...
- mysql一次读取500条数据_mysql批量插入500条数据
表格结构如下 需求name和password字段,生成如下格式: 总共批量生成500个. 解决思路:可以用mysql 存储过程 如果linux环境下可以用shell 我们先测试第一种,用存储过程.DE ...
最新文章
- 强化学习(一)- 强化学习介绍、Markov决策过程和贝尔曼期望方程
- c语言——求单词个数
- JavaScript Math和Number对象
- java web登录action_JavaWeb中登陆功能
- 白盒测试中的六种覆盖方法及案例分析
- Sublime Text 3 详细安装教程
- 【jQuery插件】Twitter Search
- Python创建进程、线程的两种方式
- Log4net配置方式
- linux怎么查看定时任务有没有运行,怎么看crontab定时任务是否执行
- oracle查询:分组查询,取出每组中的第一条记录
- 动态规划之背包问题 - 01背包+完全背包+多重背包
- linux下原始套接字编程错误:Operation not supported
- Mac os镜像下载地址记录
- visual studio 2013 编译 filezilla和filezilla server
- 时间单位的换算(秒,毫秒,微秒,纳秒,皮秒)
- 微信小程序 - 实现简单登录和个人信息页面
- 模板Template 7
- 自动化的内容生成语言模型如何帮助您赢得seo竞赛
- PixelMe怎么使用?一文教你制作像素风图片
热门文章
- 声明一个Tree(树)类,有成员ages(树龄),成员函数grow(int years)用以对ages 加上years,showage( )用以显示tree对象的ages值。在主函数中定义Tree类对
- ubuntu 磁盘管理工具 ---- GParted 图形化分区工具
- Linux获取系统UUID
- php面试题中笔试题目的汇总,php面试题中笔试题目的汇总
- 普通交换机能否改成PoE供电的?
- 使用PageOffice实现文档(word,excel,pdf)在线预览编辑
- 【精】LintCode领扣算法问题答案:1029. 寻找最便宜的航行旅途(最多经过k个中转站)
- ui设计-文案(CW)
- IP地址,子网掩码、默认网关,DNS的设置和工作原理(总结)
- 浅谈Everdroid流程化机器人设计器