mysql造大量測試資料

2021-09-29 20:54:37 字數 1066 閱讀 4455

我們在進行測試時候,有時候需要造大量的測試資料,但是資料庫對於大量資料的插入和刪除很耗時間。

1.首先實現自動化

肯定想到的是儲存過程

現在利用工具寫儲存過程很方便,框架都搭好了,填填邏輯就好

2.資料插入

利用批量插入

我試了一下,插了30萬資料14.042s的速度還是很快的

3.資料刪除

最好是直接刪表drop table

如果想保留資料結構,用truncate替代delete,但是truncate有個問題刪除不是全部,資料量很大的話,需要刪很多次,而且很慢

批量插入指令碼:

set @exesql = "";

set @exedata = "";

while count/*根據自己情況,多少條組成乙個sql*/

if i%1000=0

then

/*這裡從2開始擷取,是因為上面sql語句有個,*/

set @exedata = substring(@exedata, 2);

set @exesql = concat("insert into blog(uuid,author,status) values ", @exedata);

prepare stmt from @exesql;

execute stmt;

deallocate prepare stmt;

set @exedata = "";

end if;

end while;

/*如果插入數量不能被整除,就把下面的資料組成一條資料*/

if length(@exedata)>0

then

set @exedata = substring(@exedata, 2);

set @exesql = concat("insert into blog(uuid,author,status) values ", @exedata);

prepare stmt from @exesql;

execute stmt;

deallocate prepare stmt;

end if;

Mysql 儲存過程造測試資料

1.mysql 儲存過程造測試資料 建立乙個使用者表 create table sys user id char 32 not null default comment 主鍵 id int 11 not null auto increment comment 主鍵 username varchar ...

mysql迴圈插入大量測試資料

最近業務場景的需要,mysql單錶要插入大量資料,考慮到單條記錄長短對資料儲存量有很大的影響,所以進行了一次插入檢索測試。插入 procedure delimiter drop procedure if exists insert current data uuid create procedure...

構造大量測試資料的方法(MySql)

建立測試表 create table sys user id char 32 not null default comment 主鍵 username varchar 100 not null default comment 使用者名稱 password char 32 not null defau...