http://www.tpc.org/tpce/
물론 위 링크에서 EGen을 다운 받아서 수행하면 될 것 같지만, 여러가지 문제점이 많이 발생하는 관계로, Lauchpad Percona-tools project에서 tpcemysql 을 다운 받는다.

이는 물론 TPC-E like한 것 뿐이라서 동일하지는 않지만, 같은 database구조로 같은 query를 날리는 것 같다.

우선 linux에서 bzr 이 설치 되어 있는지 확인하고, 안되어 있으면 설치한다.
# yum install bzr

이 후 bzr 을 이용해 Lauchpad Percona-tools project에서 tpcemysql을 다운 받는다.
# bzr branch lp:~percona-dev/perconatools/tpcemysql

mysqltpce를 수행하기에 앞서서 unixODBC, unixODBC-devel package와 make를 위해 gcc-c++ package가 설치되어 있어야 하므로, 기설치여부를 확인하고 설치한다.
# yum install unixODBC, unixODBC-devel, gcc-c++

다운받은 tpcemysql의 prj 디렉토리로 이동하면 Makefile이 존재한다. 그 곳에서 make를 수행한다.
# cd tpcemysql/prj
# make

make를 수행하기 전에 혹시 64bit 머신이라면 Makefile의 옵션을 수정해본다.(아직 이 옵션에 대한 의미가 확실치 않음)
  # Defines for Linux (MySQL C API Wrapper)
  CXX=g++
! CCFLAGS=-g -O2 -Wall -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -I/usr/include/mysql -DMYSQL_ODBC -DODBC_WRAPPER -DUSE_PREPARE
  LDFLAGS=-g -O2 -Wall
  LIBS=-lpthread -lmysqlclient_r
--- 23,29 ----
  # Defines for Linux (MySQL C API Wrapper)
  CXX=g++
! CCFLAGS=-g -O2 -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -I/usr/include/mysql -DMYSQL_ODBC -DODBC_WRAPPER -DUSE_PREPARE
  LDFLAGS=-g -O2 -Wall
  LIBS=-lpthread -lmysqlclient_r

make가 성공적으로  완료되면 tpcemysql의 bin디렉토리에 3개의 파일이 생성되어 있을 것이다.
* EGenLoader, EGenSimpleTest, EGenValidate

tpcemysql 홈디렉토리에서 아래와 같이 수행한다. (꼭 홈디렉토리에서.. 아니라면 flat_in, flat_out옵션을 따로 주어야 함)
# ./bin/EGenLoader -c 1000 -t 1000 -w 3

사실 이정도로 옵션을 주고 데이터를 생성하는 것은 TPC-E specification 에 비해서 너무 작다. 하지만, EGenLoader의 default값으로 수행하면 하루 죙일.. 걸리는 것 같다. 동작을 확인하기 위해서 우선 작은 값으로 수행하는 것을 알아두자.

그 다음, tpcemysql/script/mysql 디렉토리로 이동하여 해당 query들을 수행하자. 수행하기전, database와 user를 생성해 두는 것은 잊지 말자.
# mysql -u root -p
# create database tpce;
# grant all privileges on tpce.* to 'tpce'@'localhost' identified by 'tpce';
# flush privileges;

# cd tpcemysql/script/mysql
# mysql -u tpce -p tpce < 1_creat_table.sql
# mysql -u tpce -p tpce < 2_load_data.sql
# mysql -u tpce -p tpce < 3_create_fk.sql
# mysql -u tpce -p tpce < 4_create_index.sql
# mysql -u tpce -p tpce < 5_create_sequence.sql

query까지 수행하였다면, 이젠 EGenSimpleTest를 이용해서 테스트 하기만 하면 된다.
# ./bin/EGenSimpleTest -S localhost -D tpce -d 30 -t 180 -r 60 -u 8


참고 URL :
http://d.hatena.ne.jp/sh2/20100510
http://www.tpc.org/tpce/
http://www.mysqlperformanceblog.com/?s=tpc+e

'System > MySQL' 카테고리의 다른 글

mysql 기본 명령어 정리  (0) 2011.03.30

데이터 베이스 접속시
# mysql --user=root -p 
Enter password :

# mysql -u root -p
Enter password :

MySQL 설치한 직후 root 계정에 password 변경
# mysqladmin -u root password 새비밀번호

# mysql -u root mysql
  mysql> update user set password=password('새비밀번호') where user='root';
  mysql> flush privileges;

사용자 추가
mysql> grant all privileges on dbname.* to 'username'@'localhost' identified by 'password';
mysql> flush privileges;

사용자 삭제
mysql> delete from user where user='username';
mysql> flush privileges;

데이터베이스 생성
mysql> create database dbname;

존재하는 데이터베이스 목록 보기
mysql> show databases;

특정 데이터베이스 사용하기
mysql> user dbname;

데이터베이스 삭제
mysql> drop database dbname;

테이블 생성 예제
mysql> create table tablename ( column_name1 int, column_name2 varchar(20) );

현재 데이터베이스에서 존재하는 테이블 목록 보기
mysql> show tables;

테이블 구조 보기
mysql> explain tablesname;
mysql> describe tablename;

테이블 삭제
mysql> drop table tablename;

현재상태보기
mysql> status
--------------
mysql  Ver 14.14 Distrib 5.5.10, for Win64 (x86)
Connection id:          156
Current database:
Current user:           user@localhost
SSL:                    Not in use
Using delimiter:        ;
Server version:         5.5.10 MySQL Community Server (GPL)
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    latin1
Conn.  characterset:    latin1
TCP port:               3306
Uptime:                 2 hours 18 min 59 sec
Threads: 1  Questions: 23798  Slow queries: 6  Opens: 188  Flush tables: 1  Open  tables: 0  Queries per second avg: 2.853
--------------

사용자 추가
mysql> grant all on *.* to 'username'@'localhost' identified by 'password';
mysql> grant all on dbname.* to 'username'@'localhost' identified by 'password';
mysql> flush privileges;

mysql 원격접속 설정
mysql> grant all privileges on dbname.* to 'username'@'접속ip' identified by 'password';
mysql> flush privileges;

'System > MySQL' 카테고리의 다른 글

mysql에서 tpc-e 테스트 하기  (0) 2011.05.03

+ Recent posts