MySQL information_schema
Information_schema
데이터의 집합 즉, 메타데이터(데이터에 대한 데이터)들을 종류별로 묶어 테이블을 만들었고, 이 테이블을 모아 db를 만들었는데 이것이 information_schema라고 함.
여기에는 MySQL 서버가 운영하는 모든 다른 db에 대한 정보를 저장하는 장소라고 함.
테이블 역할 정리
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
CHARACTER_SETS
COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS
COLUMN_PRIVILEGES
ENGINES
EVENTS
FILES
GLOBAL_STATUS
GLOBAL_VARIABLES
INNODB_BUFFER_PAGE
INNODB_BUFFER_PAGE_LRU
INNODB_BUFFER_POOL_STATS
INNODB_CMP
INNODB_CMPMEM
INNODB_CMPMEM_RESET
INNODB_CMP_PER_INDEX
INNODB_CMP_PER_INDEX_RESET
INNODB_CMP_RESET
INNODB_FT_BEING_DELETED
INNODB_FT_CONFIG
INNODB_FT_DEFAULT_STOPWORD
INNODB_FT_DELETED
INNODB_FT_INDEX_CACHE
INNODB_FT_INDEX_TABLE
INNODB_LOCKS
INNODB_LOCK_WAITS
INNODB_METRICS
INNODB_SYS_COLUMNS
INNODB_SYS_DATAFILES
INNODB_SYS_FIELDS
INNODB_SYS_FOREIGN
INNODB_SYS_FOREIGN_COLS
INNODB_SYS_INDEXES
INNODB_SYS_TABLES
INNODB_SYS_TABLESPACES
INNODB_SYS_TABLESTATS
INNODB_SYS_VIRTUAL
INNODB_TEMP_TABLE_INFO
INNODB_TRX
KEY_COLUMN_USAGE
OPTIMIZER_TRACE
PARAMETERS
PARTITIONS
PLUGINS
PROCESSLIST
PROFILING
REFERENTIAL_CONSTRAINTS
ROUTINES
SCHEMATA
이 중에서 써먹을만한 부분만 찾아봄.
SCHEMATA
SCHEMATA 테이블에는 SCHEMA_NAME 컬럼이 존재함.
SCHEMA_NAME에는 database 목록이 들어있음.
- 서버 내에 존재하는 db 목록들 출력
select schema_name from information_schema.schemata
COLUMNS
TABLE_SCHEMA : 해당 db 이름
TABLE_NAME : 해당 db 안의 테이블 이름
COLUMN_NAME : 해당 db 안의 테이블의 컬럼 이름
COLUMN_TYPE : 컬럼 타입과 길이 표시 ex) int(30)
- test db에 있는 테이블과 컬럼 목록 출력
select table_name, column_name from information_schema.columns where table_schema = 'test'
PROCESSLIST
USER : 유저 이름
HOST : 호스트 이름
INFO : 현재 입력한 쿼리문
- select * from processlist
- info에 select * from processlist limit 0,25가 들어있음
- limit 0,25는 자동으로 붙음
USER_PRIVILLEGES
GRANTEE : 사용자 명
PRIVILEGE_TYPE : 권한 타입 ex) select, insert 등
IS_GRANTABLE : YES or NO 둘 중 하나
mysql version check
- version check
select @@version
poqw.tistory.com/24에서 더 자세히 확인 가능
This post is licensed under CC BY 4.0 by the author.