MySQLクエリーテスト環境作成スクリプト

3675 ワード

MySQLデータベースのクエリーの最適化を検討するには、まずテスト環境が必要で、分析を行う必要があります.
生産環境でスムーズに実行できるmysqlデータベーススクリプトをテストしました.内容は以下の通りです.
# The sql script is used to create a test mysql database.
# Begtin the sql script.
# Create test database;
create databases test;
use test;
show tables;
select now() as Systemtime;

# Create 5 test tables in test database;
DROP TABLE IF EXISTS `t1`;
DROP TABLE IF EXISTS `t2`;
DROP TABLE IF EXISTS `t3`;
DROP TABLE IF EXISTS `t4`;
DROP TABLE IF EXISTS `t5`;
CREATE TABLE t1(id1 INT,a1 INT,b1 INT,PRIMARY KEY(id1));
CREATE TABLE t2(id2 INT,a2 INT,b2 INT);
CREATE TABLE t3(id3 INT UNIQUE,a3 INT,b3 INT);
CREATE TABLE t4(id4 INT,a4 INT,b4 INT);
CREATE TABLE t5(id5 INT UNIQUE,a5 INT,b5 INT);
show tables;
select now() as Systemtime;

# Create procedure to insert test data into test tables.
select name from mysql.proc where db='test';
show procedure status where db='test';
drop procedure proc01;
drop procedure proc02;
drop procedure proc03;
drop procedure proc04;
drop procedure proc05;

# Create proc01 to insert table t1 into 10000 rows 
DELIMITER //  
CREATE PROCEDURE proc01()  
begin 
declare var int;  
set var=0;  
while var<10000 do  
insert into t1 values(var,var,var);  
set var=var+1;  
end while;  
end;  
//  
DELIMITER ;
select count(*) from t1;
call proc01;
select count(*) from t1;
select now() as Systemtime;

# Create proc02 to insert table t2 into 100 rows 
DELIMITER //  
CREATE PROCEDURE proc02()  
begin 
declare var int;  
set var=0;  
while var<100 do  
insert into t2 values(var,var,var);  
set var=var+1;  
end while;  
end;  
//  
DELIMITER ;
select count(*) from t2;
call proc02;
select count(*) from t2;
select now() as Systemtime;

# Create proc03 to insert table t3 into 100 rows 
DELIMITER //  
CREATE PROCEDURE proc03()  
begin 
declare var int;  
set var=0;  
while var<100 do  
insert into t3 values(var,var,var);  
set var=var+1;  
end while;  
end;  
//  
DELIMITER ;
select count(*) from t3;
call proc03;
select count(*) from t3;
select now() as Systemtime;

# Create proc04 to insert table t4 into 7 rows 
DELIMITER //  
CREATE PROCEDURE proc04()  
begin 
declare var int;  
set var=0;  
while var<7 do  
insert into t4 values(var,var,var);  
set var=var+1;  
end while;  
end;  
//  
DELIMITER ;
select count(*) from t4;
call proc04;
select count(*) from t4;
select now() as Systemtime;

# Create proc05 to insert table t5 into 10 rows 
DELIMITER //  
CREATE PROCEDURE proc05()  
begin 
declare var int;  
set var=0;  
while var<10 do  
insert into t5 values(var,var,var);  
set var=var+1;  
end while;  
end;  
//  
DELIMITER ;
select count(*) from t5;
call proc05;
select count(*) from t5;
select now() as Systemtime;

# Drop the 5 procedure
select name from mysql.proc where db='test';
show procedure status where db='test';
drop procedure proc01;
drop procedure proc02;
drop procedure proc03;
drop procedure proc04;
drop procedure proc05;
select name from mysql.proc where db='test';
show procedure status where db='test';
select now() as Systemtime;

# The end of sql script.

以上のスクリプトは、testデータベースが確立されていない場合に、直接そのスクリプトを実行してtestデータベースを作成し、テストテーブルを作成し、データを挿入します.
作成後、次のコマンドを使用してファイルをエクスポートすることもできます.
mysqldump -uroot -p'123456' -S /data/mysqldata/3306/mysql.sock test t1 t2 t3 t4 t5 > /tmp/test_env.sql

私はすでにテスト環境で、上記のコマンドを実行し、バックアップセットを添付ファイルに保存しています.このURLでダウンロードできます.http://download.csdn.net/detail/yumushui/8266469
後でtestテスト環境を作成する必要がある場合は、testデータベースにログインして次のコマンドを実行するだけです.
msyql -uroot -p
use test;
source test_env.sql