MySQL/ADMIN
Maria DB show 명령어
argoLee
2023. 8. 31. 18:07
-1. SHOW 명령어란
MySQL 로그인후 쉘상에서 실행되는 SHOW 명령어로
Oracle의 show parameter, dbms_metadata 명령어와 동일한 역할 수행
-2. SHOW 명령어 리스트
1) SHOW DATABASE;
=> 현재 계정이 사용가능한 DATABASE 목록
2) SHOW CREATE TABLE db명.TABLE_NAME;
=> 해당 테이블을 만들기 위한 SQL 쿼리문을 출력함
3) show tables from db명;
=> 선택 DB의 table 리스트를 출력
4) show index from db명.table;
=> 해당 table의 인덱스 보기
5) show columns from db명.테이블명;
=> desc db명.테이블명 과 같은 명령어로 해당 table의 테이블 구조를 볼 수 있다
6) show table status from db명 like 'table_name';
=> 해당 table의 정보를 상세하게 출력
※show table status의 항목 설명
MariaDB [(none)]> show table status from testdb like 'test'\G;
*************************** 1. row ***************************
Name: test
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 13010
Avg_row_length: 122
Data_length: 1589248
Max_data_length: 0
Index_length: 0
Data_free: 4194304
Auto_increment: NULL
Create_time: 2017-10-31 04:58:39
Update_time: NULL
Check_time: NULL
Collation: utf8_bin
Checksum: NULL
Create_options:
Comment:
1 row in set (0.00 sec)
-Name : 테이블 이름
-Engine : 해당 테이블의 엔진
-Row_format : 열저장 형태 (fixed,Dynamic,Compressed)
-Rows : 열의 수
-Avg_row_length : 열의 평균 길이
-Data_length : 데이타파일의 길이 = 위의 Rows * Avg_row_length 값과 근사치
-Max_data_length : 해당 테이블이 사용할 수 있는 최대 데이터 파일의 크기 => myIsam 엔진 사용 테이블에 해당하는 설정으로 max_rows를 설정하여 제한 가능.
-Index_length : 인덱스 파일의 길이
-Data_free : Max_data_length - Data_length 로 가용공간을 의미
-Auto_increment : 다음 자동증가 변수
-Create_time : 테이블이 생성된 시간
-Update_time : 데이타파일의 마지막 UPDATE 시간
-Check_time : 테이블의 마지막 체크시간
-Create_options : 테이블 생성시의 기타옵션
-Comment : 테이블 생성시의 명령어
7) show variables;
=> 서버의 variables(환경 변수 등) 출력
예) show variables like '%buffer%';
buffer 관련 설정들의 값을 확인할 수 있음
8) show processlist
=> 현재 mysql db server에 연결되어있는 connection ( thread ) 정보를 출력할때 사용.
root로 접속시 모든 사용자의 연결이 보이며 계정사용자는 자신의 연결정보만 보임.
MariaDB [(none)]> show processlist\G;
*************************** 10. row ***************************
Id: 2911252
User: test_app
Host: 10.10.10.10:49730
db: test
Command: Execute
Time: 0
State: Sending data
Info: SELECT test(test.test)
INTO test
FROM (
SELECT DISTINCT test
FROM ( .....
Progress: 0.000
※show processlist의 항목 설명
-Id : 해당 커넥션(thread) 의 session id
-User : 해당 커넥션의 db계정
-Host : 해당 커넥션의 접속 IP
-db : 해당 커넥션이 수행하는 쿼리의 대상 db
-Command : 해당 커넥션의 현재 command 상태로 execute , sleep 등이 있음
-Time : 프로세스가 현재 커멘드 상태에서 동작한 시간
-State : 해당 커넥션 (thread) 의 현재 상태에 대한 정보
-Info : 현재 실행하고 있는 SQL로 show processlist로는 최대 100자까지 표시됨.
전부 표시하려면 show full processlist 커맨드로 수행
* 갱신되는 processlist 현황 모니터링 방법
리눅스쉘상태에서만 실행 가능하며
=> mysqladmin -u 아이디 -p패스워드 -i1 processlist
해당 계정에서의 processlist를 지속으로 화면에 -i1 1초에 한번씩 새로 화면에 출력하는 커맨드