数据库压力测试--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如何插入多条字段的数据

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Python连接MySQL数据库插入数据的步骤如下: 1. 安装MySQL驱动程序 在Python中连接MySQL数据库需要使用MySQL驱动程序,可以使用pip命令安装MySQL驱动程序,命令如下: ``` pip install mysql-connector-python ``` 2. 连接MySQL数据库 使用MySQL驱动程序连接MySQL数据库需要提供MySQL数据库的主机名、用户名、密码、数据库名称等信息。连接MySQL数据库的代码如下: ``` import mysql.connector # 连接MySQL数据库 mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="yourdatabase" ) ``` 3. 插入数据 连接MySQL数据库后,可以使用SQL语句向MySQL数据库插入数据插入数据的代码如下: ``` import mysql.connector # 连接MySQL数据库 mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="yourdatabase" ) # 获取游标 mycursor = mydb.cursor() # 插入数据 sql = "INSERT INTO customers (name, address) VALUES (%s, %s)" val = ("John", "Highway 21") mycursor.execute(sql, val) # 提交事务 mydb.commit() # 输出插入数据的主键ID print("插入数据的主键ID:", mycursor.lastrowid) ``` 以上代码中,使用INSERT INTO语句向customers表中插入数据插入数据为name和address字段的值。使用execute()方法执行SQL语句,使用commit()方法提交事务,使用lastrowid属性获取插入数据的主键ID。 希望以上回答能够帮助到您。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值