MySQL快速構造百萬數據


場景:測試工程師在開展壓力測試或性能測試的時候,可能需要用到大量的數據用於測試。

數據庫:MySQL

工具:Navicat

啟動本地MySQL數據庫(管理員進入cmd命令行,輸入命令: net start mysql),Navicat連接本地MySQL數據庫。

一、創建數據表

在某個數據庫里創建用於測試的數據表student,並設置主鍵id自增:

create table student(
id int(4) primary key not null auto_increment,
sname varchar(32) not null,
phone varchar(32) not null,
score int(3) not null
);

 執行以上sql語句,創建數據表,刷新可以查看新建的數據表:

 

二、插入數據

MySQL插入數據的基本語法為:

INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...);

 往student表中插入兩條數據:

INSERT INTO student (name, phone, score) VALUES ('test_1', '13000000000', 87),('test_2', '13000000001', 81);

 刷新后,發現表中會添加對應的記錄:

這里要說的使用 查詢插入語句,語法如下:

INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...) SELECT 字段1, 字段2, ... FROM <表名>

 查詢插入語句的作用是先查詢,再把查詢的結果插入。先試一下效果,執行如下命令:

INSERT INTO student (sname, phone, score) SELECT sname,phone,score FROM student

 執行完刷新student表,會發現記錄由原來的兩條變成四條:

 

實際上,執行查詢插入語句后,數據記錄條數會呈指數增長。那么多執行幾次查詢插入語句,就會得到想要的百萬數據了。這里我只插入到10w級的記錄:

可以看到,已經有26w+記錄了,暫時滿足大數據量的需求了。

三、更新數據

數據量是滿足了,但是數據真實性還有待提高。實際不會所有人的姓名、手機號、成績都是一樣的,因此需要對姓名、手機號、成績字段記錄進行修改。

修改數據基本語法如下:

UPDATE <表名> SET 字段1=值1, 字段2=值2;

1、修改姓名:

這里我們可以把姓名設置為 test_id 的格式,保證數據唯一性。test_id 的格式可以利用MySQL里的函 CONCAT 進行字符串拼接:

UPDATE student SET sname = CONCAT('test_',id)

執行完上述修改語句后,查詢結果中,sname字段已經變成 test_id 格式了。

2、修改手機號:

手機號可以從13000000000開始,依次遞增,比如設為13000000000+id:

UPDATE student SET phone = 13000000000+id

執行完上述語句,手機號就變成遞增了,且保持唯一性。

3、修改成績:

成績的話,可以設為 0-100 之間的隨機數,利用 MySQL 里的 RAND 函數生成隨機數:

UPDATE student SET score = RAND()*100

注意:RAND()函數生成的是0-1的隨機數,作為成績,*100 即可。

 最終的數據如下,還算是比較真實的數據。

 

至此,構造百萬級數據就大功告成啦。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM