mysqlの千万圧力測定データを行います

#データベースの作成
CREATE DATABASE BigDataの
#を使用データベース
USE bigdataを

#创建表
表DEPT CREATE(
識別INT UNSIGNED PRIMARY KEYのAUTO_INCREMENTを、
DEPTNO MEDIUMINT UNSIGNED NOT NULL DEFAULT 0、
DNAME VARCHAR(20)NOT NULL DEFAULT ''、
LOCのVARCHAR(13)NOT NULL DEFAULT ''
)ENGINE = INNODBのデフォルトの文字セット= GBK;

#テーブルに作成します。
CREATE TABLEのEMPを(
、ID INT UNSIGNED PRIMARY KEY AUTO_INCREMENTを上記に述べた
MEDIUMINT UNSIGNED NOT NULL DEFAULT 0、/ *数* /により、empno
ENAMEのVARCHAR(20)NOT NULL DEFAULT ''、/ *名* /
求人VARCHAR(9)NOT NULL DEFAULT ''、/ *仕事* /
MGR MEDIUMINT UNSIGNED NOT NULL DEFAULT 0、/ *上位数* /
HIREDATEのDATE NOT NULL、/ *エントリー時間* /
SAL DECIMAL(7,2)、NOT NULL、/ *給与* /
COMM DECIMAL(7,2)NOT NULL、/ * ボーナス* /
DEPTNO MEDIUMINT UNSIGNED NOT NULL DEFAULT 0 / *部門番号* /

)ENGINE = INNODB DEFAULT CHARSET = GBK ;;

#乱数生成関数作成
DELIMITER $$
)関数(rand_num CREATE
(5)を返しINT
BEGIN
DECLAREにDEFAULTをINT 0 I;
SETをI = FLOOR(100 + RAND()* 10);
RETURN I;
END $$
DELIMITER。


#创建产生随机字符串的函数
デリミタは$$
FUNCTION rand_string(N INT)を作成するVARCHAR(255)を返し
BEGIN
DECLAREのchars_str VARCHAR(100)DEFAULT 'をabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'。
return_strのVARCHAR(255)DEFAULT ''を宣言します。
私はDEFAULT 0をINT宣言します。
iがN DO <WHILE
return_str = CONCAT SET(return_str、SUBSTRING(chars_str、床(1 + RAND()* 52)、1))。
SET iは= I 1を+。
ENDのWHILE;
return_strを返します。
END $$
DELIMITER。


'%log_bin%' LIKE SHOWグローバル変数

#创建插入的存储过程
区切り文字は$$
(START INT(10)では、MAX_NUMのINT(10)IN)手順insert_dept CREATE
BEGIN
iはDEFAULT 0 INT DECLAREします。
REPEAT
SET iは= I 1を+。
DEPT(DEPTNO、DNAME、LOC)値にINSERT(rand_string)(rand_string、(START + I)10(8))。
私は= MAX_NUM UNTIL
ENDのREPEAT;
コミット;
END $$
DELIMITER。

#创建插入的存储过程
区切り文字は$$
(START INT(10)では、MAX_NUMのINT(10)IN)手順insert_emp CREATE
BEGIN
iはDEFAULT 0 INT DECLAREします。
SET自動コミット= 0。
REPEAT
SET iは= I 1を+。
(EMPNO、ENAME、ジョブ、MGR、HIREDATE、SAL、COMM、DEPTNO)VALUES((START + I)、(6)、 'SALESMAN'、0001、CURDATE()、2000,400、rand_numをrand_string()EMP。INSERT INTO );
私は= MAX_NUM UNTIL
ENDのREPEAT;
コミット;
END $$
DELIMITER。

#ストアド・プロシージャ・コール
のCALL insert_dept(51,100000000)を、

DEPT SELECT * FROM。

CALLのinsert_emp(1500000,10000000)。

SELECT * FROM EMP;

SELECT COUNT(ID)EMP FROM。

SELECT FLOOR(1つの+ RAND()* 52)。
RAND()* 52を選択します。

 

おすすめ

転載: www.cnblogs.com/jdy1022/p/10931953.html