출처 : http://comnic.tistory.com
1. SHOW
show는 단어 그대로의 의미다. 뭔가를 보여달라는 것으로 원하는 정보를 출력해주는 기능을 한다. 뒤에 붙는 의미에 따라 많은 것을 볼수 있다.
아래는 mysql.com에서 발취한 내용이다.
like_or_where
]SHOW COLLATION [
like_or_where
]SHOW [FULL] COLUMNS FROM
tbl_name
[FROM db_name
] [like_or_where
]SHOW CREATE DATABASE
db_name
SHOW CREATE FUNCTION
funcname
SHOW CREATE PROCEDURE
procname
SHOW CREATE TABLE
tbl_name
SHOW DATABASES [
like_or_where
]SHOW ENGINE
engine_name
{LOGS | STATUS }SHOW [STORAGE] ENGINES
SHOW ERRORS [LIMIT [
offset
,] row_count
]SHOW FUNCTION CODE
sp_name
SHOW FUNCTION STATUS [
like_or_where
]SHOW GRANTS FOR
user
SHOW INDEX FROM
tbl_name
[FROM db_name
]SHOW INNODB STATUS
SHOW PROCEDURE CODE
sp_name
SHOW PROCEDURE STATUS [
like_or_where
]SHOW [BDB] LOGS
SHOW MUTEX STATUS
SHOW OPEN TABLES [FROM
db_name
] [like_or_where
]SHOW PRIVILEGES
SHOW [FULL] PROCESSLIST
SHOW PROFILE [
types
] [FOR QUERY n
] [OFFSET n
] [LIMIT n
]SHOW PROFILES
SHOW [GLOBAL | SESSION] STATUS [
like_or_where
]SHOW TABLE STATUS [FROM
db_name
] [like_or_where
]SHOW TABLES [FROM
db_name
] [like_or_where
]SHOW TRIGGERS [FROM
db_name
] [like_or_where
]SHOW [GLOBAL | SESSION] VARIABLES [
like_or_where
]SHOW WARNINGS [LIMIT [
offset
,] row_count
]like_or_where
:LIKE '
pattern
'| WHERE
expr
많은 것들 중 자주 사용되고 유용한 몇가지를 먼저 살펴 보자.
1) SHOW DATABASES : 생성되어 있는 database의 리스트를 보여준다.
사용법]
mysql>show databases like '%com%';
결과]
+--------------------+
| Database |
+--------------------+
| information_schema |
| comnic |
| mydb |
| mydb_euckr |
| mydb_utf8 |
| mysql |
| test |
+-------------------+
7 rows in set (0.00 sec)
mysql> show databases like '%com%';
+--------------------+
| Database (%com%) |
+--------------------+
| comnic |
+--------------------+
1 row in set (0.00 sec)
사용법은 위와 같이 두가지 경우가 있는데 Database가 많지 않다면 기냥 모두 뿌려서 보는 것이 편하며, 많은 Database를 가지고 있다면 LIKE를 이용하는 것이 편리하다.
2) SHOW TABLES : 현재 선택된 Database에 존재하는 테이블을 보여준다.
사용법]
mysql>show tables like '%sta%';
mysql>show tables from DB_NAME;
mysql>show tables from DB_NAME like '%sta%';
결과]
+------------------+
| Tables_in_comnic |
+------------------+
| g4_auth |
| g4_board |
| g4_board_file |
| g4_board_good |
| g4_board_new |
| g4_config |
| g4_group |
| g4_group_member |
| g4_login |
| g4_mail |
| g4_member |
| g4_memo |
| g4_point |
| g4_poll |
| g4_poll_etc |
| g4_popular |
| g4_scrap |
| g4_token |
| g4_visit |
| g4_visit_sum |
| posts |
+----------------+
21 rows in set (0.01 sec)
mysql> show tables like '%board%';
+-----------------------------+
| Tables_in_comnic (%board%) |
+-----------------------------+
| g4_board |
| g4_board_file |
| g4_board_good |
| g4_board_new |
+-----------------------------+
4 rows in set (0.00 sec)
mysql> show tables from mysql;
+-------------------------+
| Tables_in_mysql |
+-------------------------+
| blog_day_statistics |
| columns_priv |
| db |
| func |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| proc |
| procs_priv |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+-------------------------+
18 rows in set (0.00 sec)
+---------------------------+
| Tables_in_mysql (%time%) |
+---------------------------+
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
+---------------------------+
5 rows in set (0.00 sec)
위의 결과를 보면 쉽게 이해가 갈 것이다. 특이한점은 from을 사용해서 다른 Database의 Table들을 볼 수 있다는 것이다.
3) SHOW PROCESSLIST : 현재 실행중인 Thread들을 보여 준다. [full]을
사용하면 쿼리의 전체문장을 다 볼 수 있으며, 기본적으로 자신의 계정에 해당하는 프로세스만 보이며, root로 접근하면 모든
프로세스를 다 볼 수 있다. 이 중 중단하고자 하는 프로세스가 있다면 Kill을 이용해 ID를 적어 주면 된다.
사용법]
mysql>show full processlist;
결과]
+----------+-----------+-----------+-----------+---------+------+--------------+------------------------------------------------------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----------+-----------+-----------+-----------+---------+------+--------------+------------------------------------------------------------------------------------------------------+
| 22379391 | webtech | localhost | webtech | Query | 0 | NULL | show processlist |
| 22379524 | webtech | localhost | webtech | Query | 13 | Sending data | select (sum(today_total)/count(today_total)) as RANK,today_total as DAY_TOTAL,BS_ID,idx as BT_IDX,bl |
+----------+-----------+-----------+-----------+---------+------+--------------+------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> show full processlist;
+----------+-----------+-----------+-----------+---------+------+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----------+-----------+-----------+-----------+---------+------+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 22379391 | webtech | localhost | webtech | Query | 0 | NULL | show full processlist |
| 22379524 | webtech | localhost | webtech | Query | 14 | Sending data | select (sum(today_total)/count(today_total)) as RANK,today_total as DAY_TOTAL,BS_ID,idx as BT_IDX,name as BT_NAME,url as BT_URL,info as MEMO from (select * from STATISTICS where S_DATE>20080405) a left join aaaa on BS_ID=id where flag <> '0' GROUP BY BS_ID order by RANK DESC |
+----------+-----------+-----------+-----------+---------+------+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
결과에서 보는 것과 같이 full을 사용하지 않았을때는 각 문장의 처음 100 charaters만을 보여 준다. 즉, 프로세스마다의 전체 쿼리를 알고 싶다면 full을 사용해야 한다.
참고)계속 프로세스의 리스트를 보고자 한다면, Shell에서 아래와 같이 하면 된다.
'Linux > Tip&Tech' 카테고리의 다른 글
VirtualBox Kernel Driver Not Installed (0) | 2009.06.23 |
---|---|
MySQL 유용한 명령어 모음 #1 - SHOW 2 (0) | 2009.06.17 |
tcpdump (0) | 2009.06.09 |
커널 파라메터 관련 (0) | 2008.12.02 |
whowatch (0) | 2008.10.09 |