数据库压力测试--MySQL数据库快速插入大量数据_高自强的博客的博客-程序员秘密

技术标签: 数据  压力测试  mysql  数据库  

一、前言

应本次数据库压力测试的要求,测试数据记录至少为千万级,所以,问题来了,如何快速插入大量数据.

二、解决方法一

第一种解决方法是在MySQL终端中实现的,具体方法如下.
a.打开MySQl数据库;

mysql -u root -p

b.创建数据库;

mysql> create database insertData;

use insertData;

create CREATE TABLE InsertTable (
`id` int(11) NOT NULL auto_increment,
`name` varchar(50) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MEMORY DEFAULT CHARSET=utf8;(PS:本数据库为MySQl的内存数据库)

c.创建插入数据的“函数”;

mysql> delimiter @//可实现多行命令的输入,作用很大
create procedure insert_InsertTable(in item integer)//类似于函数参数列表
begin
declare counter int;
set counter = item;
while counter >= 1 do
insert into myisam values(counter,concat('Record.',counter));
set counter = counter - 1;
end while;
end
@

d.调用该函数(比如插入10 000 000条测试数据);

delimiter @//不可省
call insert_InsertTable(100);
@

e.然后使用命令查看是否成功插入数据;

select count(*) from InserTable;

三、解决方法二

通过使用可知,上文中的方法一显然太过于麻烦,现在考虑将上文中的InsertTable函数写到一个.sql文件,直接调用命令就能实现将数据插入MySQL数据库.将数据库的创建、数据表的创建、数据的插入一步实现
具体实现如下:
a.创建.sql文件insert_data.sql;

drop database if exists insertData;
create database insertData;
use insertData;

SET max_heap_table_size = 1024*1024*2000;//必要的配置,为MySQL分配更大的内存,便于存储
CREATE TABLE InsertTable (
`id` int(11) NOT NULL auto_increment,
`name` varchar(50) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MEMORY DEFAULT CHARSET=utf8;


delimiter @
create procedure insert_InsertTable(in item integer)
begin
declare counter int;
set counter = item;
while counter >= 1 do
insert into InsertTable values(counter,concat('Record.',counter));
set counter = counter - 1;
end while;
end
@

delimiter @
call insert_InsertTable(10000000);
@

b.调用.sql文件;

mysql -u root -p <insert_data.sql

c.查数据是否插入;

select count(*) from InsertTable;

四、其他问题

4.1imiter @ @的作用
可以实现在终端执行多次命令,避免回车的影响.
4.2查看存储数据量命令

select count(*) from InserTable;

4.3删除数据表中的数据命令

truncate TableName;
或者
delete from TableName;

五、待优化问题

5.1如何插入随机数
5.2如何插入多种数据类型的数据
5.3如何插入多条字段的数据

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_33429968/article/details/53089171

智能推荐

Leetcode--easy系列1_-0012a42_push_pop的博客-程序员秘密

#6 ZigZag ConversionThe string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)

html5 uc qq,(进阶版)手机浏览器用户体验报告:UC、QQ、360,到底哪个好?_weixin_39637256的博客-程序员秘密

写在前面:既然是「进阶版」,说明前面还有一篇,对的,那篇的名字叫:一、体验环境1、体验时间:2014年5月25日2、手机型号:魅族MX2,Flyme OS 3.5.13、APP版本号(android系统,不包含安卓平板):1)UC浏览器:V9.7.9.4392)QQ浏览器:V5.2.0.8703)360浏览器:V6.0.1二、体验正文1、网页载入速度首先把三款浏览器的数据全部清空,然后分别打开新浪...

Exadata上个性需求的反面案例_chengmu7120的博客-程序员秘密

很多技术控非常喜欢对自己运维的系统进行一些个性定制设计,但对Exadata而言,如果你对它不是特别的理解,一些个性化设置,往往很可能会带来一些不可预知的后果。所以ORACLE一再地强调:”Exadata上的存储节点,不允许进行任何的修改工作”。 不允许对存储节点进行任何的修改工作,这其实是夸...

myeclipse的java web项目中修改源代码,页面显示没有变化_myeclipse改写源代码_程序员之bug制造者的博客-程序员秘密

myeclipse的java web项目中修改源代码,页面显示没有变化**加粗样式**1.点击project-&gt;选中buildautomatically即可2.或者重启tomcat3.再或者移除tomcat上部署的项目,再将该项目重新部署...

洛谷 1712 BZOJ 4653 [NOI2016]区间_weixin_30673715的博客-程序员秘密

【题解】  先把区间按照未离散化的长度排序,保存区间长度,然后离散化区间端点。每次把区间覆盖的点的覆盖次数加1,如果某个点被覆盖次数大于等于m,就从前往后开始删除区间直到没有一个点被覆盖的次数大于等于m,然后继续加入区间。边做边维护答案即可。   1 #include&lt;cstdio&gt; 2 #include&lt;algorithm&gt; 3 #defi...

Java基础----算数运算符,赋值运算符,比较运算符,逻辑运算符,三元运算符_Mr_bugu的博客-程序员秘密

运算符的分类:1算数运算符2赋值运算符3比较运算符4逻辑运算符5三元运算符1.算数运算符练习public static void main(String[] args) { int i = 6666; System.out.println(i/1000*1000);//计算结果是6666}前++与后++的区别:1.变量在独立运算时, 前 ++ 和 后 ++ 没有区别 。2.变量 前 ++ :例如 ++i 。3.变量 后 ++ :例如 i++public sta

随便推点

android WebView载入本地html及css文件_redennc的博客-程序员秘密

MainActivity.javapackage com.example.webview;import android.app.Activity;import android.os.Bundle;import android.webkit.WebView;public class MainActivity extends Activity { @Override protec

浅谈springCloudAlibaba_喜只狼果冻的博客-程序员秘密

第一章:微服务发展史1、演变单体应用架构---&gt;垂直应用架构---&gt;分布式架构---&gt;SOA架构---&gt;微服务架构单体架构在一台tomcat服务器上部署一个web项目垂直应用架构就是将原来的一个应用拆成互不相干的几个应用,以提升效率分布式架构它将把工程拆分成表现层和服务层两个部分,服务层中包含业务逻辑,表现层只需要处理和页面的交互SOA架构一个调度中心对集群进行实时管理,解决在分布式架构下服务越来越多的问题微服务架构在S

系统设计.如何设计一个秒杀系统(完整版)_闲猫的博客-程序员秘密

秒杀大家都不陌生。自2011年首次出现以来,无论是双十一购物还是12306抢票,秒杀场景已随处可见。简单来说,秒杀就是在同一时刻大量请求争抢购买同一商品并完成交易的过程。从架构视角来看,秒杀系统本质是一个高性能、高一致、高可用的三高系统。而打造并维护一个超大流量的秒杀系统需要进行哪些关注,就是本文讨论的话题。当然,减库存还有很多细节问题,例如预扣的库存超时后如何进行回补,再比如第三方支付如何保证减库存和付款时的状态一致性,这些也是很大的挑战。一个秒杀系统的设计思考-SegmentFault思否。......

Web表单验证:最佳实践和教程_web为什么要做表单验证?_SekaiSekai的博客-程序员秘密

理想情况下,用户将必要的信息填入表单中,然后顺利提交。然而,用户经常犯二。这就是为什么我们要强调Web表单验证。Web表单验证的目的是保证用户顺利提交必要且格式正确的信息。在这篇文章中,我们将超越验证这一行为本身,来探寻不同的验证方式和错误反馈的技术和方法。

海康威视连续采图与单步采图_c#_海康威视连续抓图_x1angzeeD.的博客-程序员秘密

首先引用海康威视的MVS中的MvCameraControl.Net然后 using MvCamCtrl.NET;查找设备程序:其中的ComboBox cbDeviceList是显示设备序列号的下拉列表public void DeviceListAcq(ComboBox cbDeviceList) { int nRet; // ch:创建设备列表 en:Create Device List Syste

解决kafka手动消费提交失败导致数据是重复的问题_文武书生的博客-程序员秘密

https://www.cnblogs.com/kaleidoscope/p/9763053.html 转载自这里

推荐文章

热门文章

相关标签