中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中怎么按表創建千萬級的壓測數據

發布時間:2021-08-13 15:21:57 來源:億速云 閱讀:168 作者:Leah 欄目:數據庫

這期內容當中小編將會給大家帶來有關MySQL中怎么按表創建千萬級的壓測數據,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1. 準備測試表

CREATE TABLE `username` (     `uid` INT( 11 ) UNSIGNED NOT NULL default 1235678901,     `username` VARCHAR( 20 ) ,     `email` VARCHAR( 30 ) ,     `password` VARCHAR( 32 ) ,     `birthday` date,     `gender` VARCHAR(10) ,     avatar MEDIUMBLOB,     PRIMARY KEY ( `uid` ) ) ENGINE = INNODB DEFAULT CHARSET=utf8;

2. 隨機生成數據

MySQL里面自帶一個隨機數生成的函數RAND(),它能生成0-1的浮點數

RAND函數生成隨機數:

  • SET GLOBAL log_bin_trust_function_creators = 1;  

  • CREATE DEFINER = `root` @`%` FUNCTION `rand_string` ( n INT ) RETURNS VARCHAR ( 255 ) CHARSET utf8 BEGIN 

  •     DECLARE 

  •         chars_str VARCHAR ( 100 ) DEFAULT 'hwbtestABCDEFG23141HIJ6712dfghjkqwevbnqmwerqwerqwreqw214123e1214c12dssaf89'; 

  •     DECLARE 

  •         return_str VARCHAR ( 255 ) DEFAULT ''; 

  •     DECLARE 

  •         i INT DEFAULT 0; 

  •     WHILE 

  •             i < n DO 

  •              

  •             SET return_str = concat( return_str, substring( chars_str, FLOOR( 1 + RAND( ) * 80 ), 1 ) ); 

  •          

  •         SET ii = i + 1; 

  •          

  •     END WHILE; 

  • RETURN return_str; 

  • END; 

  • <img alt="詳解MySQL如何按表創建<span><span><span><i @qq.com')

    4. 隨機生成DATE和DATETIME類型

    (1) DATE類型

    CREATE DEFINER = `root` @`%` FUNCTION `randDate` ( ) RETURNS VARCHAR ( 255 ) CHARSET utf8 BEGIN     DECLARE         aDate CHAR ( 10 ) DEFAULT ''; /*CONCAT (1949 + FLOOR( ( RAND( ) * 70 ) ) 表示 1949到2019的隨機數據      --L PAD ( FLOOR( 1 + ( RAND( ) * 12 ) ), 2, 0 ) 表示月份的生成,小于 10自動補0      --L PAD ( FLOOR( 3 + ( RAND( ) * 8 ) ), 2, 0 ) ) 表示 3號到10號的隨機數據 */          SET aDate = CONCAT(         1949 + FLOOR( ( RAND( ) * 70 ) ),         '-',         LPAD( FLOOR( 1 + ( RAND( ) * 12 ) ), 2, 0 ),         '-',         LPAD( FLOOR( 3 + ( RAND( ) * 8 ) ), 2, 0 )      ); RETURN aDate; END;

    詳解MySQL如何按表創建<span><span><span><i dp-xml

  • Returns the string str:str, left-padded with the string padstr to a length of len characters.  

  • If str is longer than len:N, the return value is shortened to len characters. 

  • mysql> SELECT LPAD('hi',4,'??'); 

  • -> '??hi' 

  • mysql> SELECT LPAD('hi',1,'??'); 

  • -> 'h' 

  • (2) DATETIME類型

    在剛剛寫好的randDate上進行改造:

    CREATE DEFINER = `root` @`%` FUNCTION `randDateTime` ( ) RETURNS VARCHAR ( 255 ) CHARSET utf8 BEGIN     DECLARE         aDateTime CHAR ( 19 ) DEFAULT '';          SET aDateTime = CONCAT(         CONCAT(             1949 + FLOOR( ( RAND( ) * 70 ) ),             '-',             LPAD( FLOOR( 1 + ( RAND( ) * 12 ) ), 2, 0 ),             '-',             LPAD( FLOOR( 3 + ( RAND( ) * 8 ) ), 2, 0 )          ),         ' ',         CONCAT(             LPAD( FLOOR( 0 + ( RAND( ) * 23 ) ), 2, 0 ),             ':',             LPAD( FLOOR( 0 + ( RAND( ) * 60 ) ), 2, 0 ),             ':',             LPAD( FLOOR( 0 + ( RAND( ) * 60 ) ), 2, 0 )          )      ); RETURN aDateTime; END;

    5. 將數據循環插入

    定義將數據循環的存儲過程:

    DELIMITER // CREATE PROCEDURE insertUser ( )  BEGIN     DECLARE         num INT;          SET num = 1;     WHILE             num < 100000 DO             INSERT INTO username ( uid,username, email, PASSWORD, birthday, gender, avatar )         VALUES             ( num,                 rand_string ( 15 ),                 concat( rand_string ( 5 ), '@qq.com' ),                 rand_string ( 32 ),                 randDate ( ),                 '男',             NULL              );                  SET numnum = num + 1;              END WHILE;     commit; END; //

    調用存儲過程:

    CALL insertUser;

上述就是小編為大家分享的MySQL中怎么按表創建千萬級的壓測數據了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泸溪县| 木兰县| 南充市| 屏边| 隆昌县| 祁东县| 林甸县| 禹城市| 深州市| 兴宁市| 阜平县| 名山县| 乡宁县| 正安县| 新民市| 临湘市| 东港市| 桑植县| 武冈市| 襄汾县| 广灵县| 无为县| 湘西| 河北省| 崇阳县| 蒙自县| 平利县| 阿坝| 辛集市| 巴彦淖尔市| 肃宁县| 三门县| 南澳县| 嘉峪关市| 方城县| 城步| 焦作市| 永善县| 达拉特旗| 九江市| 延川县|