示例:
user表中插入一千万条数据,其中user_id11位手机号随机,可以重复;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利用存储过程批量插入一千万数据(半小时)相关推荐

  1. mysql利用存储过程批量插入数据

    -- 如果存在此存储过程则删掉 DROP PROCEDURE IF EXISTS proc_initData; -- 定好结束符为"$" DELIMITER $ -- 创建 CRE ...

  2. MySQL使用存储过程批量插入百(千)万测试数据

    最近发现蝉知的全文检索不是用的第三方类似于sphinx或xunsearch这样的全文检索组件,所以我本着好奇心测试了一下它的效率... 测试结果就不说了,主要说下折腾这1000万测试数据的过程 MyS ...

  3. Mysql通过存储过程批量插入数据

    创建表 DROP TABLE if exists employees_partition; CREATE TABLE if not exists `employees_partition` (`id` ...

  4. MySQL使用存储过程批量插入数据

    # 1. 创建学生表和课程表 create table `student_info`( `id` int(11) not null auto_increment, `student_id` int n ...

  5. mysql命令行批量添加数据_mysql命令行批量插入100条数据命令

    先介绍一个关键字的使用: delimiter 定好结束符为"$$",(定义的时候需要加上一个空格) 然后最后又定义为";", MYSQL的默认结束符为" ...

  6. MySQL利用存储过程自动生成千万条数据

    文章目录 ​前言 ​一.实现思路 ​二.实现步骤 ​1.创建数据库 ​2.创建存储表和内存表 ​3.创建所需函数 ​4.创建存储过程 ​5.调用存储过程插入数据 ​6.统计数据库 ​ 拓展 ​总结 前 ...

  7. mysql测试数据100w_利用MySQL存储过程批量插入100W条测试数据

    这里将告诉您利用MySQL存储过程批量插入100W条测试数据,具体完成步骤:DROP PROCEDURE IF EXISTS insert_batch; CREATE PROCEDURE insert ...

  8. mysql 存储过程 批量导入数据_sql 利用存储过程批量导入数据

    什么是 存储过程(stored procedure)是一组为了完成特定功能的sql语句集,是利用sql server所提供的transact-sql语言所编写的程序.经编译后存储在中.存储过程是数据库 ...

  9. mysql一次读取500条数据_mysql批量插入500条数据

    表格结构如下 需求name和password字段,生成如下格式: 总共批量生成500个. 解决思路:可以用mysql 存储过程 如果linux环境下可以用shell 我们先测试第一种,用存储过程.DE ...

最新文章

  1. 强化学习(一)- 强化学习介绍、Markov决策过程和贝尔曼期望方程
  2. c语言——求单词个数
  3. JavaScript Math和Number对象
  4. java web登录action_JavaWeb中登陆功能
  5. 白盒测试中的六种覆盖方法及案例分析
  6. Sublime Text 3 详细安装教程
  7. 【jQuery插件】Twitter Search
  8. Python创建进程、线程的两种方式
  9. Log4net配置方式
  10. linux怎么查看定时任务有没有运行,怎么看crontab定时任务是否执行
  11. oracle查询:分组查询,取出每组中的第一条记录
  12. 动态规划之背包问题 - 01背包+完全背包+多重背包
  13. linux下原始套接字编程错误:Operation not supported
  14. Mac os镜像下载地址记录
  15. visual studio 2013 编译 filezilla和filezilla server
  16. 时间单位的换算(秒,毫秒,微秒,纳秒,皮秒)
  17. 微信小程序 - 实现简单登录和个人信息页面
  18. 模板Template 7
  19. 自动化的内容生成语言模型如何帮助您赢得seo竞赛
  20. PixelMe怎么使用?一文教你制作像素风图片

热门文章

  1. 声明一个Tree(树)类,有成员ages(树龄),成员函数grow(int years)用以对ages 加上years,showage( )用以显示tree对象的ages值。在主函数中定义Tree类对
  2. ubuntu 磁盘管理工具 ---- GParted 图形化分区工具
  3. Linux获取系统UUID
  4. php面试题中笔试题目的汇总,php面试题中笔试题目的汇总
  5. 普通交换机能否改成PoE供电的?
  6. 使用PageOffice实现文档(word,excel,pdf)在线预览编辑
  7. 【精】LintCode领扣算法问题答案:1029. 寻找最便宜的航行旅途(最多经过k个中转站)
  8. ui设计-文案(CW)
  9. IP地址,子网掩码、默认网关,DNS的设置和工作原理(总结)
  10. 浅谈Everdroid流程化机器人设计器