http://www.mysqlkorea.co.kr
한글매뉴얼 5.0 , 한글매뉴얼 5.1 , MySQL 5.1 HA , 사용자매뉴얼
Advanced Knowle...  
엔지니어 노트  
블로그존  
글로벌 MySQL  
MySQL 5.5 GA  
MySQL 5.6 Developer  
최신글
인텍스 추가 등에…
mysql master - s…
다대다 관계에서 …
mysql my파일과 …
mysql server 설…
 
MySQL 5.6.2 labs innodb memcached 설치 및 테스트
글쓴이 : taeguni   날짜 : 11-09-20 16:15   조회수 : 13733
http://labs.mysql.com/
위의 사이트로 가서 "mysql-5.6.2-labs-innodb-memcached-linux2.6-x86_64.tar.gz" 해당 파일을 다운로드 한 이후 설치 하여 테스트 해보았습니다.
설치 이후 가장 기본적으로 버전을 확인 하니 다음과 같습니다.
mysql> select version();
+---------------------------------+
| version()                       |
+---------------------------------+
| 5.6.2-labs-innodb-memcached-log |
+---------------------------------+
1 row in set (0.00 sec)
 
설치 후 바로 사용가능한 엔진은 다음과 같습니다.
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| InnoDB             | YES     | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| MyISAM             | DEFAULT | MyISAM storage engine                                          | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)
 
총 9개의 엔진이 리스트에 보이며, 활성화 된 엔진은 FEDERATED를 제외한 8개 엔진이 모두 활성화 된 것을 확인 할 수 있습니다.
 
memcache는 이노디비 환경에서만 사용이 가능하다고 하여, 이노디비 버전을 확인 해보았습니다.
mysql> select @@innodb_version;
+------------------+
| @@innodb_version |
+------------------+
| 1.2.2            |
+------------------+
1 row in set (0.00 sec)
 
기본 설치 이후 확인 되는 플러그인 목록을 보니 다음과 같습니다.
mysql> show plugins;
+--------------------------+----------+--------------------+---------+---------+
| Name                     | Status   | Type               | Library | License |
+--------------------------+----------+--------------------+---------+---------+
| binlog                   | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| mysql_native_password    | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
| mysql_old_password       | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
| MRG_MYISAM               | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| CSV                      | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| MyISAM                   | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| MEMORY                   | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| InnoDB                   | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| INNODB_TRX               | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_LOCKS             | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_LOCK_WAITS        | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMP               | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMP_RESET         | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMPMEM            | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMPMEM_RESET      | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_BUFFER_PAGE       | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_BUFFER_PAGE_LRU   | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_BUFFER_POOL_STATS | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_METRICS           | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_TABLES        | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_TABLESTATS    | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_INDEXES       | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_COLUMNS       | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_FIELDS        | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_FOREIGN       | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_FOREIGN_COLS  | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| PERFORMANCE_SCHEMA       | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| BLACKHOLE                | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| FEDERATED                | DISABLED | STORAGE ENGINE     | NULL    | GPL     |
| ARCHIVE                  | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| partition                | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
+--------------------------+----------+--------------------+---------+---------+
31 rows in set (0.00 sec)
 
확인 해보니 memcache가 기본적으로는 지원이 안되는 것으로 보이며, 특이 사항으로는 Innodb 관련하여, 인포메이션 스키마 관련된 항목이 눈에 띄게 늘어난 것을 알 수 있습니다.
 
memchache 플러그인을 설치합니다.
mysql> install plugin daemon_memcached soname "libmemcached.so";
 
mysql> show plugins;
+--------------------------+----------+--------------------+-----------------+---------+
| Name                     | Status   | Type               | Library         | License |
+--------------------------+----------+--------------------+-----------------+---------+
| binlog                   | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| mysql_native_password    | ACTIVE   | AUTHENTICATION     | NULL            | GPL     |
| mysql_old_password       | ACTIVE   | AUTHENTICATION     | NULL            | GPL     |
| MRG_MYISAM               | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| CSV                      | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| MyISAM                   | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| MEMORY                   | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| InnoDB                   | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| INNODB_TRX               | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_LOCKS             | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_LOCK_WAITS        | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_CMP               | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_CMP_RESET         | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_CMPMEM            | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_CMPMEM_RESET      | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_BUFFER_PAGE       | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_BUFFER_PAGE_LRU   | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_BUFFER_POOL_STATS | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_METRICS           | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_SYS_TABLES        | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_SYS_TABLESTATS    | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_SYS_INDEXES       | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_SYS_COLUMNS       | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_SYS_FIELDS        | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_SYS_FOREIGN       | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_SYS_FOREIGN_COLS  | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| PERFORMANCE_SCHEMA       | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| BLACKHOLE                | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| FEDERATED                | DISABLED | STORAGE ENGINE     | NULL            | GPL     |
| ARCHIVE                  | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| partition                | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| daemon_memcached         | ACTIVE   | DAEMON             | libmemcached.so | GPL     |
+--------------------------+----------+--------------------+-----------------+---------+
32 rows in set (0.00 sec)
 
설치가 된 것을 확인 할 수 있습니다.
 
현재 설치된 데이터 베이스 인스턴스를 확인해봅니다.
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)
 
바이너리 디렉토리의 script-xs 내부를 보면 innodb_memcached_config.sql 파일이 추가된 것을 확인 할 수 있습니다.
SQL 스크립트 파일임으로, 스크립트를 실행시켜서, memcache 설치를 완료 합니다.
 
shell> mysql -uroot  < script-xs/innodb_memcached_config.sql 
 
스크립트를 실행시키자 innodb_memcache 데이터베이스가 추가된 것을 확인 할 수 있습니다.
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| innodb_memcache    |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)
 
테이블도 확인해 봅니다.
 
mysql> use innodb_memcache;
 
mysql> show tables;
+---------------------------+
| Tables_in_innodb_memcache |
+---------------------------+
| cache_policies            |
| config_options            |
| containers                |
+---------------------------+
3 rows in set (0.00 sec)
 
mysql> select * from cache_policies;
+--------------+-------------+-------------+---------------+--------------+
| policy_name  | get_policy  | set_policy  | delete_policy | flush_policy |
+--------------+-------------+-------------+---------------+--------------+
| cache_policy | innodb_only | innodb_only | innodb_only   | innodb_only  |
+--------------+-------------+-------------+---------------+--------------+
1 row in set (0.00 sec)
 
mysql> select * from config_options;
+-----------+-------+
| name      | value |
+-----------+-------+
| separator | |     |
+-----------+-------+
1 row in set (0.00 sec)
 
mysql> select * from containers;
+------+-----------+-----------+-------------+---------------+-------+------------+--------------------+------------------------+
| name | db_schema | db_table  | key_columns | value_columns | flags | cas_column | expire_time_column | unique_idx_name_on_key |
+------+-----------+-----------+-------------+---------------+-------+------------+--------------------+------------------------+
| aaa  | test      | demo_test | c1          | c2            | c3    | c4         | c5                 | PRIMARY                |
+------+-----------+-----------+-------------+---------------+-------+------------+--------------------+------------------------+
1 row in set (0.00 sec)
t
est 데이터베이스에 demo_test 테이블이 등록된 것을 확인할 수 있습니다.
 
mysql> use test
 
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| demo_test      |
+----------------+
1 row in set (0.00 sec)
 
mysql> select * from demo_test;
+----+--------------+------+------+------+
| c1 | c2           | c3   | c4   | C5   |
+----+--------------+------+------+------+
| AA | HELLO, HELLO |    8 |    0 |    0 |
+----+--------------+------+------+------+
1 row in set (0.00 sec)
 
테스트 데이터 베이스의 내용을 확인하니 다음과 같습니다.
 
이제 NoSQL을 테스트 하기 위해서, 텔넷으로 접속하고, set명령어와 get명령어를 실행해봅니다.
 
shell> telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
set a11 10 0 9
123456789
STORED
get a11
VALUE a11 10 9
123456789
END
 
파란색 글자 부분만 입력하며, 실행 결과는 위와 같습니다.
 
다시 mysql 콘솔로 접속하여, 실제 테이블에 반영된 것을 확인해봅니다.
 
mysql> use test
 
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| demo_test      |
+----------------+
1 row in set (0.00 sec)
mysql> select * from demo_test;
+----+--------------+------+------+------+
| c1 | c2           | c3   | c4   | C5   |
+----+--------------+------+------+------+
| AA | HELLO, HELLO |    8 |    0 |    0 |
+----+--------------+------+------+------+
1 row in set (0.00 sec)
 
아직 반영이 안된 것을 볼 수 있습니다.
 
다음 명령어를 실행하여, 현재 세션에서 커밋이 안된 데이터를 읽을 수 있도록 설정합니다.
 
mysql> set session TRANSACTION ISOLATION LEVEL read uncommitted;
 
mysql>  select * from demo_test;
+-----+--------------+------+------+------+
| c1  | c2           | c3   | c4   | C5   |
+-----+--------------+------+------+------+
| a11 | 123456789    |   10 |    1 | NULL |
| AA  | HELLO, HELLO |    8 |    0 |    0 |
+-----+--------------+------+------+------+
2 rows in set (0.00 sec)
 
set으로 입력한 데이터가 보이는 것을 알 수 있습니다.
 
위와 같이 5.6버전에서 새롭게 제공하는 memcache에 대해서 설치 테스트를 진행 하였습니다.
이전글 MySQL 5.6 Lab - InnoDB / Replication 
다음글
MySQL Korea 사이트의 컨텐츠 소유권은 (주)상상이비즈에 있으므로 무단전재를 금합니다.
Copyright ⓒ ssebiz All Rights Reserved.