---恢复内容开始---

最近仔细研究了一下mysql优化索引的知识,当然开始玩之前还是要插入大量数据的

下面是表结构

Ps:这个插入是我看韩老师的mysq优化章节

1 #创建表EMP雇员2 CREATE TABLE emp3 (empno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,/*编号*/

4 ename VARCHAR(20) NOT NULL DEFAULT "",/*名字*/

5 job VARCHAR(9) NOT NULL DEFAULT "",/*工作*/

6 mgr MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,/*上级编号*/

7 hiredate DATE NOT NULL,/*入职时间*/

8 sal DECIMAL(7,2) NOT NULL,/*薪水*/

9 comm DECIMAL(7,2),/*红利*/

10 deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0/*部门编号*/

11 )ENGINE=MyISAM DEFAULT CHARSET=utf8;

然后我们创建存储过程

先:delimiter $$

先创建随机部门号函数

#这里我们有自定了一个函数,返回一个随机部门号create functionrand_num()returns int(5)begin

declare i int default 0;set i = floor(10+rand()*500);returni;end $$

然后我们创建存储函数

#随机添加雇员 max_num条,雇员编号从 start

#start是雇员编号开始,max_num准备添加多少雇员create procedure inset_emp(in start int(10),in max_num int(10))begin

declare i int default 0;

#set autocommit=0把autocommit设置成0 含义:不要自动提交set autocommit = 0;

repeatset i = i + 1;

#通过前面写的函数随机产生字符串和部门编号,然后加入带emp表insert into emp values ((start+i),rand_string(6),'SALESMAN',0001,curdate(),2000,400,rand_num());

until i=max_numendrepeat;

#commit整体提交所有spl语句,提高效率commit;end$$

最后执行inset_emp插入数据

call inset_emp(100001,8000000)$$

最后等待执行完毕。一般时间和机器配置有关,我是用的windows i3cpu 4分钟。

最后我们试一下查询速度。

【这里我之前生成数据的时候,价格id主键,就不删除id了,咱们直接查询ename】

然后我们执行随机查询

发现时间都是很久,然后我们为字段ename添加索引

这个执行可能需要几分钟时间,因为他要在数据根目录创建一个索引文件

MYI结尾文件是MYD结尾文件大小的约三分之一。

添加完成后,我们再执一次此查询。

可以看出,速度提升了很多很多。

ps:删除索引的命令是 ceshi_name是索引名,emp是表明。

删除成功后再执行一次查询。

可以看到有慢了许多。

mysql大批量数据写入_存储过程写入大批量数据,用于测试mysql查询优化相关推荐

  1. mysql百万数据写入_快速写入百万数据

    1.快速写入百万数据 mysql原生操作 mysql原生操作写入500万数据! # 建库 create database mydb01; # 使用库 use mydb01; # 建表 create t ...

  2. solr mysql数据注入_(solr系列:四)将mysql数据库中的数据导入到solr中

    在前面的博文中,已完成了在tomcat中对solr的部署,为solr添加了一个自定义的core,并且引入了ik分词器. 那么该如何将本地的mysql的数据导入到solr中呢? 准备工作: 1.mysq ...

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

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

  4. php 导出mysql 数据库表结构图_导入和导出数据表的图文介绍(phpMyAdmin的使用教程5)...

    导入和导出数据表的图文介绍(phpMyAdmin的使用教程5) 导入和导出数据是互逆的两个操作,导入数据是通过扩展名为.sql的文件导入到数据库中,导出数据是将数据表结构,表记录储存为.sql的文件, ...

  5. mysql查看数据倾斜_深入理解hadoop数据倾斜

    深入理解hadoop之数据倾斜 1.什么是数据倾斜 我们在用map /reduce程序执行时,有时候会发现reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理 ...

  6. mysql高可靠部署_可能是我见过最好的 MySQL 高可用解决方案 MySQL InnoDB Cluster 中文教程!...

    公众号关注 「运维之美」设为「星标」,每天带你玩转 Linux ! 这篇文章将详细地介绍 MySQL 的高可用解决方案-- MySQL InnoDB Cluster. 说到高可用性,首先要了解一下什么 ...

  7. python爬取淘宝数据魔方_《淘宝数据魔方技术架构解析》阅读笔记

    淘宝网拥有国内最具商业价值的海量数据.截至当前,每天有超过30亿的店铺.商品浏览记录,10亿在线商品数,上千万的成交.收藏和评价数据.如何从这些数据中挖掘出真正的商业价值,进而帮助淘宝.商家进行企业的 ...

  8. 你如何理解mysql的读写分离_面试官:谈谈你对Mysql数据库读写分离的了解,并且有哪些注意事项?...

    这篇文章讲述的不是Mysql具体的如何实现读写分离,而是指什么时候需要上读写分离,及其相关的注意事项. 因为用户的增多,数据的增多,单机的数据库往往支撑不住快速发展的业务,所以数据库集群就产生了!今天 ...

  9. 腾讯云mysql高可用方案_腾讯云数据库团队:MySQL数据库的高可用性分析

    作者介绍:易固武,腾讯高级工程师,参与腾讯账号安全建设,腾讯数据仓库(TDW)优化改造,腾讯云数据库等项目,对大规模分布式存储和计算系统有浓厚的兴趣和经历 MySQL数据库是目前开源应用最大的关系型数 ...

最新文章

  1. 有哪些适合远程办公的软件值得推荐?
  2. c语言为什么提供函数声明机制,通过实战理解C语言精要——函数篇
  3. 什么是MIME?什么是MIME邮件?
  4. 性能测试(01)-jmeter元件-线程组、调试取样器
  5. DB2数据库报 [SQL0805N Package NULLID.SQLLD003 was not found.]
  6. 数字与企鹅的战争,看周红衣的高明之处
  7. HT68F30控制5150 IIC控制总线
  8. 2020 年最牛逼的 10 门编程语言,别在选错语言了
  9. Redis解读持久化RDB和AOF原理
  10. JavaScript 打开新页面
  11. 实现写邮箱html页面,用html写的简单的邮箱登陆界面
  12. java中方法重载与重写的区别
  13. Android技术开发 必备网站及使用工具
  14. 中国计算机软件专业技术资格和水平考试各地咨询地址和报名时间
  15. earn the python in hard way习题31~35的附加习题
  16. 汇编bne的问题 汇编中的标号1: 以及bne 1b解释
  17. html下拉加载原理,GitHub - gavinjzx/wxPull: 原生JS实现微信公众号或网页使用下拉加载和上拉刷新...
  18. 视频去水印软件?在线去除视频水印工具网站?
  19. 全国各地的五十种面条大全
  20. c语言程序设计江义火答案,大学就是一个群英会集的(),天下各处各地的学子到这里来,以寻求天下各种各样的知识。...

热门文章

  1. BlockChain:区块链入门课程 -- 区块链应用于能源 POWER LEDGER案例
  2. Docker快速搭建TeamSpeak多人语音聊天服务器
  3. linux常用yum 安装基本包_linux - yum常用命令
  4. .net core 开发 Windows Forms 程序
  5. 【TencentOS tiny】深度源码分析(4)——消息队列
  6. 【Java】编写Java应用程序,完成从键盘输入圆的半径,求圆的周长和面积并输出结果的功能...
  7. MATLAB如何进行系统辨识(传递函数)
  8. “Table .__efmigrationshistory doesn’t exist”的解决方案
  9. 通用职责分配软件原则之7-纯虚构原则
  10. Chrome浏览器各种文件的存放路径汇总