본문 바로가기

Technique/Database

MySQL SHOW 명령모음

반응형

SHOW 명령어 정의

 

MySQL 로그인후 쉘상에서 실행되는 SHOW 명령어

ex : mysql>SHOW 명령

 

SHOW 명령어 리스트

 

SHOW DATABASE;

-- 현재 계정이 제어가능한 DATABASE 목록

 

SHOW CREATE TABLE TABLE_NAME;

-- 해당 테이블을 만들기 위한 SQL 쿼리문을 출력함

※ 상당히 좋은 기능이다.

 

SHOW TABLES LIKE '키워드';

SHOW TABLES LIKE '키워드%';

 

show tables;

--use database사용후 사용하며 선택 DB의 table 리스트를 출력 

show tables from database;

--지정된 database가 소유한 table list
show tables like 'mem%';

--조건에 맞는 테이블목록만 출력
show index from table;

--해당 table의 인덱스 보기
show columns from 테이블명;

--해당 table의 테이블 구조 보기

show table status;

--use database 사용후 사용하며 현재 database의 모든 table의 정보를 상세하게 출력

show table status from table;

--use database 사용후 사용하며 현재 database의 table의 정보를 상세하게 출력

 

※show table status의 항목 설명 시작

show table status(=show table staus from db명) - 해당 db의 table이 상세하게 나온다.

-Name : 테이블 이름 
 -Type : 테이블 타입 
 -Row_format : 열저장 형태 (fixed,Dynamic,Compressed) 
 -Rows : 열의 수 
 -Avg_row_length : 열의 평균 길이 
 -Data_length : 데이타파일의 길이 
 -Max_data_length : 데이타파일의 최대길이 
 -Index_length : 인덱스 파일의 길이 
 -Data_free : 사용되지않는 bytes 에 할당된 수 
 -Auto_increment : 다음 자동증가 변수 
 -Create_time : 테이블이 생성된 시간 

 -Update_time : 데이타파일의 마지막 UPDATE 시간 
 -Check_time : 테이블의 마지막 체크시간 

 

 

 -Create_options : 테이블 생성시의 기타옵션 
 -Comment : 테이블 생성시의 명령어 


show tables - 간략하게 현재 db의 table이 나온다. 

※show table status의 항목 설명 종료


show variables;

--서버의 variables(설정사항)출력

show variables like 'have_innodb%';

--설정사항중 have_innodb(innodb사용유무) 변수만 보기

show variables like 'max_connection%';

--설정사항중 max_connection(최대접속수) 변수만 보기

show variables like 'character_set%';

--설정사항중  character_set(폰트관련) 변수만 보기

 

SHOW VARIABLES LIKE '%character%';

-- 현재 MySQL의 문자셋(캐릭터셋) 설정을 볼수 있다.

 

 

 

show status;

--현재 mysql서버의 상태를 확인할때 사용한다.

 

show logs;

--로그파일의 상태정보를 출력합니다.

 

show processlist

 

현재 mysql 클라이언트에 연결되어있는 클라이언트의 정보를 출력할때 사용합니다.

이 클라이언트는 웹으로 접속한 사용자가 아니며 콘솔을 통해 로그인한 사용자를 말한다.

root로 접속시 모든 사용자의 연결이 보입니다. 계정사용자는 자신만 연결정보만 보입니다.

 

갱신되는 processlist창을 보기

 

리눅스쉘상태에서만 실행 가능

mysqladmin -u 아이디 -p패스워드 -i1 processlist

 

해당 계정에서의 processlist를 지속으로 화면에 -i1 1초에 한번씩 새로 화면에 리프레쉬합니다.

info부분에 실행 쿼리가 나오며 -i옵션은 콘솔모드에서만 사용가능하며 mysql콘솔에서는 사용할수 없습니다. 모니터링을 하다가 time이 높은 info부분은 query의 실행시간을 나타나므로 문제가 있는 query는 수정해야 합니다.

 

실제 테스트를 해보면 processlist에 걸리는 query가 없을수도 있다.

이유는 보통 쿼리는 0초도 안걸리기 때문에 mysqladmin -u 아이디 -p패스워드 -i1 명령으로 잡아내기 힘듭니다.

 

sleep는 접속후 해당 쿼리를 실행후 제대로 프로세서 종료가 제대로 안된 프로세서 입니다.

이때는 time값이 지속적으로 증가하는데 show variables에서wait_timeout의 수치만큼 올라가면 자동으로 해당 sleep프로세서는 종료하게 됩니다.

보통 자동으로 종료하지만 너무 오랜 "sleep는 kill id번호" 로 죽일수 있습니다.

 

※ php 에서 쿼리 날리고 반드시 아래처럼 하는 습관을 길러야 합니다.

mysql_close(),mysql_free_result()는 db사용후 꼭 넣어주어야 합니다. 

반응형

'Technique > Database' 카테고리의 다른 글

[ORACLE] Dual  (0) 2020.05.04
[ORACLE] 사용자 권한 확인, 수정, 삭제  (0) 2019.02.14
[MySQL] Sequence 생성  (0) 2019.02.01
InnoDB의 새로운 파일 포맷 "Barracuda"  (0) 2019.01.30