MySQL 데이터베이스 최적화: 인덱스 설계와 슬로우 쿼리

💡 핵심 요약 (Executive Summary)

본 가이드는 db mysql 핵심 가이드 및 실전 아키텍처의 핵심 개념, 실전 구성 명령어 및 아키텍처 베스트 프랙티스를 다룹니다. 클라우드 네이티브 및 인프라 엔지니어링 실무에 즉시 활용 가능하도록 체계적으로 정리했습니다.

📑 Table of Contents

Server Only

하위페이지
Command In Server
bash
tee ./$filename
# 이후 쿼리콘솔내에서 클라이언트 종료시점까지 나오는 모든 출력을 파일에 기록
Expression in CLI
sql
\e #줄바꿈 SQL 실행
\G #pretty print
Setting up
Max-Connection 관련 이슈 해결
  • config

    groovy
    [mysqld]
    max_connect_errors = 10000 
    max_connections = 1000 
    wait_timeout = 120
    interactive_timeout = 120
  • query

    sql
    # 설정적용 확인
    SHOW VARIABLES LIKE 'max_connect_errors';
    SHOW VARIABLES LIKE 'max_connections';
    SHOW VARIABLES LIKE 'wait_timeout';
    SHOW VARIABLES LIKE 'interactive_timeout';
    
    # 커넥션 확인
    SHOW STATUS LIKE 'Threads_connected';
    SHOW STATUS LIKE 'Max_used_connections';
    # 거절된 연결 확인
    SHOW STATUS LIKE 'Aborted_connects';
    SHOW GLOBAL STATUS LIKE 'Connection_errors_max_connections';

DDL

Information_schema
Query
sql
SELECT
    table_name, COLUMN_NAME
FROM
    information_schema.columns A
WHERE
    A.table_schema = 'information_schema';
Data
table\_name COLUMN\_NAME
ALL\_PLUGINS PLUGIN\_NAME
ALL\_PLUGINS PLUGIN\_VERSION
ALL\_PLUGINS PLUGIN\_STATUS
ALL\_PLUGINS PLUGIN\_TYPE
ALL\_PLUGINS PLUGIN\_TYPE\_VERSION
ALL\_PLUGINS PLUGIN\_LIBRARY
ALL\_PLUGINS PLUGIN\_LIBRARY\_VERSION
ALL\_PLUGINS PLUGIN\_AUTHOR
ALL\_PLUGINS PLUGIN\_DESCRIPTION
ALL\_PLUGINS PLUGIN\_LICENSE
ALL\_PLUGINS LOAD\_OPTION
ALL\_PLUGINS PLUGIN\_MATURITY
ALL\_PLUGINS PLUGIN\_AUTH\_VERSION
APPLICABLE\_ROLES GRANTEE
APPLICABLE\_ROLES ROLE\_NAME
APPLICABLE\_ROLES IS\_GRANTABLE
APPLICABLE\_ROLES IS\_DEFAULT
CHARACTER\_SETS CHARACTER\_SET\_NAME
CHARACTER\_SETS DEFAULT\_COLLATE\_NAME
CHARACTER\_SETS DESCRIPTION
CHARACTER\_SETS MAXLEN
CHECK\_CONSTRAINTS CONSTRAINT\_CATALOG
CHECK\_CONSTRAINTS CONSTRAINT\_SCHEMA
CHECK\_CONSTRAINTS TABLE\_NAME
CHECK\_CONSTRAINTS CONSTRAINT\_NAME
CHECK\_CONSTRAINTS CHECK\_CLAUSE
COLLATIONS COLLATION\_NAME
COLLATIONS CHARACTER\_SET\_NAME
COLLATIONS ID
COLLATIONS IS\_DEFAULT
COLLATIONS IS\_COMPILED
COLLATIONS SORTLEN
COLLATION\_CHARACTER\_SET\_APPLICABILITY COLLATION\_NAME
COLLATION\_CHARACTER\_SET\_APPLICABILITY CHARACTER\_SET\_NAME
COLUMNS TABLE\_CATALOG
COLUMNS TABLE\_SCHEMA
COLUMNS TABLE\_NAME
COLUMNS COLUMN\_NAME
COLUMNS ORDINAL\_POSITION
COLUMNS COLUMN\_DEFAULT
COLUMNS IS\_NULLABLE
COLUMNS DATA\_TYPE
COLUMNS CHARACTER\_MAXIMUM\_LENGTH
COLUMNS CHARACTER\_OCTET\_LENGTH
COLUMNS NUMERIC\_PRECISION
COLUMNS NUMERIC\_SCALE
COLUMNS DATETIME\_PRECISION
COLUMNS CHARACTER\_SET\_NAME
COLUMNS COLLATION\_NAME
COLUMNS COLUMN\_TYPE
COLUMNS COLUMN\_KEY
COLUMNS EXTRA
COLUMNS PRIVILEGES
COLUMNS COLUMN\_COMMENT
COLUMNS IS\_GENERATED
COLUMNS GENERATION\_EXPRESSION
COLUMN\_PRIVILEGES GRANTEE
COLUMN\_PRIVILEGES TABLE\_CATALOG
COLUMN\_PRIVILEGES TABLE\_SCHEMA
COLUMN\_PRIVILEGES TABLE\_NAME
COLUMN\_PRIVILEGES COLUMN\_NAME
COLUMN\_PRIVILEGES PRIVILEGE\_TYPE
COLUMN\_PRIVILEGES IS\_GRANTABLE
ENABLED\_ROLES ROLE\_NAME
ENGINES ENGINE
ENGINES SUPPORT
ENGINES COMMENT
ENGINES TRANSACTIONS
ENGINES XA
ENGINES SAVEPOINTS
EVENTS EVENT\_CATALOG
EVENTS EVENT\_SCHEMA
EVENTS EVENT\_NAME
EVENTS DEFINER
EVENTS TIME\_ZONE
EVENTS EVENT\_BODY
EVENTS EVENT\_DEFINITION
EVENTS EVENT\_TYPE
EVENTS EXECUTE\_AT
EVENTS INTERVAL\_VALUE
EVENTS INTERVAL\_FIELD
EVENTS SQL\_MODE
EVENTS STARTS
EVENTS ENDS
EVENTS STATUS
EVENTS ON\_COMPLETION
EVENTS CREATED
EVENTS LAST\_ALTERED
EVENTS LAST\_EXECUTED
EVENTS EVENT\_COMMENT
EVENTS ORIGINATOR
EVENTS CHARACTER\_SET\_CLIENT
EVENTS COLLATION\_CONNECTION
EVENTS DATABASE\_COLLATION
FILES FILE\_ID
FILES FILE\_NAME
FILES FILE\_TYPE
FILES TABLESPACE\_NAME
FILES TABLE\_CATALOG
FILES TABLE\_SCHEMA
FILES TABLE\_NAME
FILES LOGFILE\_GROUP\_NAME
FILES LOGFILE\_GROUP\_NUMBER
FILES ENGINE
FILES FULLTEXT\_KEYS
FILES DELETED\_ROWS
FILES UPDATE\_COUNT
FILES FREE\_EXTENTS
FILES TOTAL\_EXTENTS
FILES EXTENT\_SIZE
FILES INITIAL\_SIZE
FILES MAXIMUM\_SIZE
FILES AUTOEXTEND\_SIZE
FILES CREATION\_TIME
FILES LAST\_UPDATE\_TIME
FILES LAST\_ACCESS\_TIME
FILES RECOVER\_TIME
FILES TRANSACTION\_COUNTER
FILES VERSION
FILES ROW\_FORMAT
FILES TABLE\_ROWS
FILES AVG\_ROW\_LENGTH
FILES DATA\_LENGTH
FILES MAX\_DATA\_LENGTH
FILES INDEX\_LENGTH
FILES DATA\_FREE
FILES CREATE\_TIME
FILES UPDATE\_TIME
FILES CHECK\_TIME
FILES CHECKSUM
FILES STATUS
FILES EXTRA
GLOBAL\_STATUS VARIABLE\_NAME
GLOBAL\_STATUS VARIABLE\_VALUE
GLOBAL\_VARIABLES VARIABLE\_NAME
GLOBAL\_VARIABLES VARIABLE\_VALUE
KEYWORDS WORD
KEY\_CACHES KEY\_CACHE\_NAME
KEY\_CACHES SEGMENTS
KEY\_CACHES SEGMENT\_NUMBER
KEY\_CACHES FULL\_SIZE
KEY\_CACHES BLOCK\_SIZE
KEY\_CACHES USED\_BLOCKS
KEY\_CACHES UNUSED\_BLOCKS
KEY\_CACHES DIRTY\_BLOCKS
KEY\_CACHES READ\_REQUESTS
KEY\_CACHES READS
KEY\_CACHES WRITE\_REQUESTS
KEY\_CACHES WRITES
KEY\_COLUMN\_USAGE CONSTRAINT\_CATALOG
KEY\_COLUMN\_USAGE CONSTRAINT\_SCHEMA
KEY\_COLUMN\_USAGE CONSTRAINT\_NAME
KEY\_COLUMN\_USAGE TABLE\_CATALOG
KEY\_COLUMN\_USAGE TABLE\_SCHEMA
KEY\_COLUMN\_USAGE TABLE\_NAME
KEY\_COLUMN\_USAGE COLUMN\_NAME
KEY\_COLUMN\_USAGE ORDINAL\_POSITION
KEY\_COLUMN\_USAGE POSITION\_IN\_UNIQUE\_CONSTRAINT
KEY\_COLUMN\_USAGE REFERENCED\_TABLE\_SCHEMA
KEY\_COLUMN\_USAGE REFERENCED\_TABLE\_NAME
KEY\_COLUMN\_USAGE REFERENCED\_COLUMN\_NAME
OPTIMIZER\_TRACE QUERY
OPTIMIZER\_TRACE TRACE
OPTIMIZER\_TRACE MISSING\_BYTES\_BEYOND\_MAX\_MEM\_SIZE
OPTIMIZER\_TRACE INSUFFICIENT\_PRIVILEGES
PARAMETERS SPECIFIC\_CATALOG
PARAMETERS SPECIFIC\_SCHEMA
PARAMETERS SPECIFIC\_NAME
PARAMETERS ORDINAL\_POSITION
PARAMETERS PARAMETER\_MODE
PARAMETERS PARAMETER\_NAME
PARAMETERS DATA\_TYPE
PARAMETERS CHARACTER\_MAXIMUM\_LENGTH
PARAMETERS CHARACTER\_OCTET\_LENGTH
PARAMETERS NUMERIC\_PRECISION
PARAMETERS NUMERIC\_SCALE
PARAMETERS DATETIME\_PRECISION
PARAMETERS CHARACTER\_SET\_NAME
PARAMETERS COLLATION\_NAME
PARAMETERS DTD\_IDENTIFIER
PARAMETERS ROUTINE\_TYPE
PARTITIONS TABLE\_CATALOG
PARTITIONS TABLE\_SCHEMA
PARTITIONS TABLE\_NAME
PARTITIONS PARTITION\_NAME
PARTITIONS SUBPARTITION\_NAME
PARTITIONS PARTITION\_ORDINAL\_POSITION
PARTITIONS SUBPARTITION\_ORDINAL\_POSITION
PARTITIONS PARTITION\_METHOD
PARTITIONS SUBPARTITION\_METHOD
PARTITIONS PARTITION\_EXPRESSION
PARTITIONS SUBPARTITION\_EXPRESSION
PARTITIONS PARTITION\_DESCRIPTION
PARTITIONS TABLE\_ROWS
PARTITIONS AVG\_ROW\_LENGTH
PARTITIONS DATA\_LENGTH
PARTITIONS MAX\_DATA\_LENGTH
PARTITIONS INDEX\_LENGTH
PARTITIONS DATA\_FREE
PARTITIONS CREATE\_TIME
PARTITIONS UPDATE\_TIME
PARTITIONS CHECK\_TIME
PARTITIONS CHECKSUM
PARTITIONS PARTITION\_COMMENT
PARTITIONS NODEGROUP
PARTITIONS TABLESPACE\_NAME
PLUGINS PLUGIN\_NAME
PLUGINS PLUGIN\_VERSION
PLUGINS PLUGIN\_STATUS
PLUGINS PLUGIN\_TYPE
PLUGINS PLUGIN\_TYPE\_VERSION
PLUGINS PLUGIN\_LIBRARY
PLUGINS PLUGIN\_LIBRARY\_VERSION
PLUGINS PLUGIN\_AUTHOR
PLUGINS PLUGIN\_DESCRIPTION
PLUGINS PLUGIN\_LICENSE
PLUGINS LOAD\_OPTION
PLUGINS PLUGIN\_MATURITY
PLUGINS PLUGIN\_AUTH\_VERSION
PROCESSLIST ID
PROCESSLIST USER
PROCESSLIST HOST
PROCESSLIST DB
PROCESSLIST COMMAND
PROCESSLIST TIME
PROCESSLIST STATE
PROCESSLIST INFO
PROCESSLIST TIME\_MS
PROCESSLIST STAGE
PROCESSLIST MAX\_STAGE
PROCESSLIST PROGRESS
PROCESSLIST MEMORY\_USED
PROCESSLIST MAX\_MEMORY\_USED
PROCESSLIST EXAMINED\_ROWS
PROCESSLIST QUERY\_ID
PROCESSLIST INFO\_BINARY
PROCESSLIST TID
PROFILING QUERY\_ID
PROFILING SEQ
PROFILING STATE
PROFILING DURATION
PROFILING CPU\_USER
PROFILING CPU\_SYSTEM
PROFILING CONTEXT\_VOLUNTARY
PROFILING CONTEXT\_INVOLUNTARY
PROFILING BLOCK\_OPS\_IN
PROFILING BLOCK\_OPS\_OUT
PROFILING MESSAGES\_SENT
PROFILING MESSAGES\_RECEIVED
PROFILING PAGE\_FAULTS\_MAJOR
PROFILING PAGE\_FAULTS\_MINOR
PROFILING SWAPS
PROFILING SOURCE\_FUNCTION
PROFILING SOURCE\_FILE
PROFILING SOURCE\_LINE
REFERENTIAL\_CONSTRAINTS CONSTRAINT\_CATALOG
REFERENTIAL\_CONSTRAINTS CONSTRAINT\_SCHEMA
REFERENTIAL\_CONSTRAINTS CONSTRAINT\_NAME
REFERENTIAL\_CONSTRAINTS UNIQUE\_CONSTRAINT\_CATALOG
REFERENTIAL\_CONSTRAINTS UNIQUE\_CONSTRAINT\_SCHEMA
REFERENTIAL\_CONSTRAINTS UNIQUE\_CONSTRAINT\_NAME
REFERENTIAL\_CONSTRAINTS MATCH\_OPTION
REFERENTIAL\_CONSTRAINTS UPDATE\_RULE
REFERENTIAL\_CONSTRAINTS DELETE\_RULE
REFERENTIAL\_CONSTRAINTS TABLE\_NAME
REFERENTIAL\_CONSTRAINTS REFERENCED\_TABLE\_NAME
ROUTINES SPECIFIC\_NAME
ROUTINES ROUTINE\_CATALOG
ROUTINES ROUTINE\_SCHEMA
ROUTINES ROUTINE\_NAME
ROUTINES ROUTINE\_TYPE
ROUTINES DATA\_TYPE
ROUTINES CHARACTER\_MAXIMUM\_LENGTH
ROUTINES CHARACTER\_OCTET\_LENGTH
ROUTINES NUMERIC\_PRECISION
ROUTINES NUMERIC\_SCALE
ROUTINES DATETIME\_PRECISION
ROUTINES CHARACTER\_SET\_NAME
ROUTINES COLLATION\_NAME
ROUTINES DTD\_IDENTIFIER
ROUTINES ROUTINE\_BODY
ROUTINES ROUTINE\_DEFINITION
ROUTINES EXTERNAL\_NAME
ROUTINES EXTERNAL\_LANGUAGE
ROUTINES PARAMETER\_STYLE
ROUTINES IS\_DETERMINISTIC
ROUTINES SQL\_DATA\_ACCESS
ROUTINES SQL\_PATH
ROUTINES SECURITY\_TYPE
ROUTINES CREATED
ROUTINES LAST\_ALTERED
ROUTINES SQL\_MODE
ROUTINES ROUTINE\_COMMENT
ROUTINES DEFINER
ROUTINES CHARACTER\_SET\_CLIENT
ROUTINES COLLATION\_CONNECTION
ROUTINES DATABASE\_COLLATION
SCHEMATA CATALOG\_NAME
SCHEMATA SCHEMA\_NAME
SCHEMATA DEFAULT\_CHARACTER\_SET\_NAME
SCHEMATA DEFAULT\_COLLATION\_NAME
SCHEMATA SQL\_PATH
SCHEMA\_PRIVILEGES GRANTEE
SCHEMA\_PRIVILEGES TABLE\_CATALOG
SCHEMA\_PRIVILEGES TABLE\_SCHEMA
SCHEMA\_PRIVILEGES PRIVILEGE\_TYPE
SCHEMA\_PRIVILEGES IS\_GRANTABLE
SESSION\_STATUS VARIABLE\_NAME
SESSION\_STATUS VARIABLE\_VALUE
SESSION\_VARIABLES VARIABLE\_NAME
SESSION\_VARIABLES VARIABLE\_VALUE
STATISTICS TABLE\_CATALOG
STATISTICS TABLE\_SCHEMA
STATISTICS TABLE\_NAME
STATISTICS NON\_UNIQUE
STATISTICS INDEX\_SCHEMA
STATISTICS INDEX\_NAME
STATISTICS SEQ\_IN\_INDEX
STATISTICS COLUMN\_NAME
STATISTICS COLLATION
STATISTICS CARDINALITY
STATISTICS SUB\_PART
STATISTICS PACKED
STATISTICS NULLABLE
STATISTICS INDEX\_TYPE
STATISTICS COMMENT
STATISTICS INDEX\_COMMENT
SQL\_FUNCTIONS FUNCTION
SYSTEM\_VARIABLES VARIABLE\_NAME
SYSTEM\_VARIABLES SESSION\_VALUE
SYSTEM\_VARIABLES GLOBAL\_VALUE
SYSTEM\_VARIABLES GLOBAL\_VALUE\_ORIGIN
SYSTEM\_VARIABLES DEFAULT\_VALUE
SYSTEM\_VARIABLES VARIABLE\_SCOPE
SYSTEM\_VARIABLES VARIABLE\_TYPE
SYSTEM\_VARIABLES VARIABLE\_COMMENT
SYSTEM\_VARIABLES NUMERIC\_MIN\_VALUE
SYSTEM\_VARIABLES NUMERIC\_MAX\_VALUE
SYSTEM\_VARIABLES NUMERIC\_BLOCK\_SIZE
SYSTEM\_VARIABLES ENUM\_VALUE\_LIST
SYSTEM\_VARIABLES READ\_ONLY
SYSTEM\_VARIABLES COMMAND\_LINE\_ARGUMENT
TABLES TABLE\_CATALOG
TABLES TABLE\_SCHEMA
TABLES TABLE\_NAME
TABLES TABLE\_TYPE
TABLES ENGINE
TABLES VERSION
TABLES ROW\_FORMAT
TABLES TABLE\_ROWS
TABLES AVG\_ROW\_LENGTH
TABLES DATA\_LENGTH
TABLES MAX\_DATA\_LENGTH
TABLES INDEX\_LENGTH
TABLES DATA\_FREE
TABLES AUTO\_INCREMENT
TABLES CREATE\_TIME
TABLES UPDATE\_TIME
TABLES CHECK\_TIME
TABLES TABLE\_COLLATION
TABLES CHECKSUM
TABLES CREATE\_OPTIONS
TABLES TABLE\_COMMENT
TABLES MAX\_INDEX\_LENGTH
TABLES TEMPORARY
TABLESPACES TABLESPACE\_NAME
TABLESPACES ENGINE
TABLESPACES TABLESPACE\_TYPE
TABLESPACES LOGFILE\_GROUP\_NAME
TABLESPACES EXTENT\_SIZE
TABLESPACES AUTOEXTEND\_SIZE
TABLESPACES MAXIMUM\_SIZE
TABLESPACES NODEGROUP\_ID
TABLESPACES TABLESPACE\_COMMENT
TABLE\_CONSTRAINTS CONSTRAINT\_CATALOG
TABLE\_CONSTRAINTS CONSTRAINT\_SCHEMA
TABLE\_CONSTRAINTS CONSTRAINT\_NAME
TABLE\_CONSTRAINTS TABLE\_SCHEMA
TABLE\_CONSTRAINTS TABLE\_NAME
TABLE\_CONSTRAINTS CONSTRAINT\_TYPE
TABLE\_PRIVILEGES GRANTEE
TABLE\_PRIVILEGES TABLE\_CATALOG
TABLE\_PRIVILEGES TABLE\_SCHEMA
TABLE\_PRIVILEGES TABLE\_NAME
TABLE\_PRIVILEGES PRIVILEGE\_TYPE
TABLE\_PRIVILEGES IS\_GRANTABLE
TRIGGERS TRIGGER\_CATALOG
TRIGGERS TRIGGER\_SCHEMA
TRIGGERS TRIGGER\_NAME
TRIGGERS EVENT\_MANIPULATION
TRIGGERS EVENT\_OBJECT\_CATALOG
TRIGGERS EVENT\_OBJECT\_SCHEMA
TRIGGERS EVENT\_OBJECT\_TABLE
TRIGGERS ACTION\_ORDER
TRIGGERS ACTION\_CONDITION
TRIGGERS ACTION\_STATEMENT
TRIGGERS ACTION\_ORIENTATION
TRIGGERS ACTION\_TIMING
TRIGGERS ACTION\_REFERENCE\_OLD\_TABLE
TRIGGERS ACTION\_REFERENCE\_NEW\_TABLE
TRIGGERS ACTION\_REFERENCE\_OLD\_ROW
TRIGGERS ACTION\_REFERENCE\_NEW\_ROW
TRIGGERS CREATED
TRIGGERS SQL\_MODE
TRIGGERS DEFINER
TRIGGERS CHARACTER\_SET\_CLIENT
TRIGGERS COLLATION\_CONNECTION
TRIGGERS DATABASE\_COLLATION
USER\_PRIVILEGES GRANTEE
USER\_PRIVILEGES TABLE\_CATALOG
USER\_PRIVILEGES PRIVILEGE\_TYPE
USER\_PRIVILEGES IS\_GRANTABLE
VIEWS TABLE\_CATALOG
VIEWS TABLE\_SCHEMA
VIEWS TABLE\_NAME
VIEWS VIEW\_DEFINITION
VIEWS CHECK\_OPTION
VIEWS IS\_UPDATABLE
VIEWS DEFINER
VIEWS SECURITY\_TYPE
VIEWS CHARACTER\_SET\_CLIENT
VIEWS COLLATION\_CONNECTION
VIEWS ALGORITHM
GEOMETRY\_COLUMNS F\_TABLE\_CATALOG
GEOMETRY\_COLUMNS F\_TABLE\_SCHEMA
GEOMETRY\_COLUMNS F\_TABLE\_NAME
GEOMETRY\_COLUMNS F\_GEOMETRY\_COLUMN
GEOMETRY\_COLUMNS G\_TABLE\_CATALOG
GEOMETRY\_COLUMNS G\_TABLE\_SCHEMA
GEOMETRY\_COLUMNS G\_TABLE\_NAME
GEOMETRY\_COLUMNS G\_GEOMETRY\_COLUMN
GEOMETRY\_COLUMNS STORAGE\_TYPE
GEOMETRY\_COLUMNS GEOMETRY\_TYPE
GEOMETRY\_COLUMNS COORD\_DIMENSION
GEOMETRY\_COLUMNS MAX\_PPR
GEOMETRY\_COLUMNS SRID
SPATIAL\_REF\_SYS SRID
SPATIAL\_REF\_SYS AUTH\_NAME
SPATIAL\_REF\_SYS AUTH\_SRID
SPATIAL\_REF\_SYS SRTEXT
CLIENT\_STATISTICS CLIENT
CLIENT\_STATISTICS TOTAL\_CONNECTIONS
CLIENT\_STATISTICS CONCURRENT\_CONNECTIONS
CLIENT\_STATISTICS CONNECTED\_TIME
CLIENT\_STATISTICS BUSY\_TIME
CLIENT\_STATISTICS CPU\_TIME
CLIENT\_STATISTICS BYTES\_RECEIVED
CLIENT\_STATISTICS BYTES\_SENT
CLIENT\_STATISTICS BINLOG\_BYTES\_WRITTEN
CLIENT\_STATISTICS ROWS\_READ
CLIENT\_STATISTICS ROWS\_SENT
CLIENT\_STATISTICS ROWS\_DELETED
CLIENT\_STATISTICS ROWS\_INSERTED
CLIENT\_STATISTICS ROWS\_UPDATED
CLIENT\_STATISTICS SELECT\_COMMANDS
CLIENT\_STATISTICS UPDATE\_COMMANDS
CLIENT\_STATISTICS OTHER\_COMMANDS
CLIENT\_STATISTICS COMMIT\_TRANSACTIONS
CLIENT\_STATISTICS ROLLBACK\_TRANSACTIONS
CLIENT\_STATISTICS DENIED\_CONNECTIONS
CLIENT\_STATISTICS LOST\_CONNECTIONS
CLIENT\_STATISTICS ACCESS\_DENIED
CLIENT\_STATISTICS EMPTY\_QUERIES
CLIENT\_STATISTICS TOTAL\_SSL\_CONNECTIONS
CLIENT\_STATISTICS MAX\_STATEMENT\_TIME\_EXCEEDED
INDEX\_STATISTICS TABLE\_SCHEMA
INDEX\_STATISTICS TABLE\_NAME
INDEX\_STATISTICS INDEX\_NAME
INDEX\_STATISTICS ROWS\_READ
INNODB\_SYS\_DATAFILES SPACE
INNODB\_SYS\_DATAFILES PATH
USER\_STATISTICS USER
USER\_STATISTICS TOTAL\_CONNECTIONS
USER\_STATISTICS CONCURRENT\_CONNECTIONS
USER\_STATISTICS CONNECTED\_TIME
USER\_STATISTICS BUSY\_TIME
USER\_STATISTICS CPU\_TIME
USER\_STATISTICS BYTES\_RECEIVED
USER\_STATISTICS BYTES\_SENT
USER\_STATISTICS BINLOG\_BYTES\_WRITTEN
USER\_STATISTICS ROWS\_READ
USER\_STATISTICS ROWS\_SENT
USER\_STATISTICS ROWS\_DELETED
USER\_STATISTICS ROWS\_INSERTED
USER\_STATISTICS ROWS\_UPDATED
USER\_STATISTICS SELECT\_COMMANDS
USER\_STATISTICS UPDATE\_COMMANDS
USER\_STATISTICS OTHER\_COMMANDS
USER\_STATISTICS COMMIT\_TRANSACTIONS
USER\_STATISTICS ROLLBACK\_TRANSACTIONS
USER\_STATISTICS DENIED\_CONNECTIONS
USER\_STATISTICS LOST\_CONNECTIONS
USER\_STATISTICS ACCESS\_DENIED
USER\_STATISTICS EMPTY\_QUERIES
USER\_STATISTICS TOTAL\_SSL\_CONNECTIONS
USER\_STATISTICS MAX\_STATEMENT\_TIME\_EXCEEDED
INNODB\_SYS\_TABLESTATS TABLE\_ID
INNODB\_SYS\_TABLESTATS NAME
INNODB\_SYS\_TABLESTATS STATS\_INITIALIZED
INNODB\_SYS\_TABLESTATS NUM\_ROWS
INNODB\_SYS\_TABLESTATS CLUST\_INDEX\_SIZE
INNODB\_SYS\_TABLESTATS OTHER\_INDEX\_SIZE
INNODB\_SYS\_TABLESTATS MODIFIED\_COUNTER
INNODB\_SYS\_TABLESTATS AUTOINC
INNODB\_SYS\_TABLESTATS REF\_COUNT
INNODB\_LOCKS lock\_id
INNODB\_LOCKS lock\_trx\_id
INNODB\_LOCKS lock\_mode
INNODB\_LOCKS lock\_type
INNODB\_LOCKS lock\_table
INNODB\_LOCKS lock\_index
INNODB\_LOCKS lock\_space
INNODB\_LOCKS lock\_page
INNODB\_LOCKS lock\_rec
INNODB\_LOCKS lock\_data
INNODB\_MUTEXES NAME
INNODB\_MUTEXES CREATE\_FILE
INNODB\_MUTEXES CREATE\_LINE
INNODB\_MUTEXES OS\_WAITS
INNODB\_CMPMEM page\_size
INNODB\_CMPMEM buffer\_pool\_instance
INNODB\_CMPMEM pages\_used
INNODB\_CMPMEM pages\_free
INNODB\_CMPMEM relocation\_ops
INNODB\_CMPMEM relocation\_time
INNODB\_CMP\_PER\_INDEX database\_name
INNODB\_CMP\_PER\_INDEX table\_name
INNODB\_CMP\_PER\_INDEX index\_name
INNODB\_CMP\_PER\_INDEX compress\_ops
INNODB\_CMP\_PER\_INDEX compress\_ops\_ok
INNODB\_CMP\_PER\_INDEX compress\_time
INNODB\_CMP\_PER\_INDEX uncompress\_ops
INNODB\_CMP\_PER\_INDEX uncompress\_time
INNODB\_CMP page\_size
INNODB\_CMP compress\_ops
INNODB\_CMP compress\_ops\_ok
INNODB\_CMP compress\_time
INNODB\_CMP uncompress\_ops
INNODB\_CMP uncompress\_time
INNODB\_FT\_DELETED DOC\_ID
INNODB\_CMP\_RESET page\_size
INNODB\_CMP\_RESET compress\_ops
INNODB\_CMP\_RESET compress\_ops\_ok
INNODB\_CMP\_RESET compress\_time
INNODB\_CMP\_RESET uncompress\_ops
INNODB\_CMP\_RESET uncompress\_time
INNODB\_LOCK\_WAITS requesting\_trx\_id
INNODB\_LOCK\_WAITS requested\_lock\_id
INNODB\_LOCK\_WAITS blocking\_trx\_id
INNODB\_LOCK\_WAITS blocking\_lock\_id
TABLE\_STATISTICS TABLE\_SCHEMA
TABLE\_STATISTICS TABLE\_NAME
TABLE\_STATISTICS ROWS\_READ
TABLE\_STATISTICS ROWS\_CHANGED
TABLE\_STATISTICS ROWS\_CHANGED\_X\_INDEXES
INNODB\_TABLESPACES\_ENCRYPTION SPACE
INNODB\_TABLESPACES\_ENCRYPTION NAME
INNODB\_TABLESPACES\_ENCRYPTION ENCRYPTION\_SCHEME
INNODB\_TABLESPACES\_ENCRYPTION KEYSERVER\_REQUESTS
INNODB\_TABLESPACES\_ENCRYPTION MIN\_KEY\_VERSION
INNODB\_TABLESPACES\_ENCRYPTION CURRENT\_KEY\_VERSION
INNODB\_TABLESPACES\_ENCRYPTION KEY\_ROTATION\_PAGE\_NUMBER
INNODB\_TABLESPACES\_ENCRYPTION KEY\_ROTATION\_MAX\_PAGE\_NUMBER
INNODB\_TABLESPACES\_ENCRYPTION CURRENT\_KEY\_ID
INNODB\_TABLESPACES\_ENCRYPTION ROTATING\_OR\_FLUSHING
INNODB\_BUFFER\_PAGE\_LRU POOL\_ID
INNODB\_BUFFER\_PAGE\_LRU LRU\_POSITION
INNODB\_BUFFER\_PAGE\_LRU SPACE
INNODB\_BUFFER\_PAGE\_LRU PAGE\_NUMBER
INNODB\_BUFFER\_PAGE\_LRU PAGE\_TYPE
INNODB\_BUFFER\_PAGE\_LRU FLUSH\_TYPE
INNODB\_BUFFER\_PAGE\_LRU FIX\_COUNT
INNODB\_BUFFER\_PAGE\_LRU IS\_HASHED
INNODB\_BUFFER\_PAGE\_LRU NEWEST\_MODIFICATION
INNODB\_BUFFER\_PAGE\_LRU OLDEST\_MODIFICATION
INNODB\_BUFFER\_PAGE\_LRU ACCESS\_TIME
INNODB\_BUFFER\_PAGE\_LRU TABLE\_NAME
INNODB\_BUFFER\_PAGE\_LRU INDEX\_NAME
INNODB\_BUFFER\_PAGE\_LRU NUMBER\_RECORDS
INNODB\_BUFFER\_PAGE\_LRU DATA\_SIZE
INNODB\_BUFFER\_PAGE\_LRU COMPRESSED\_SIZE
INNODB\_BUFFER\_PAGE\_LRU COMPRESSED
INNODB\_BUFFER\_PAGE\_LRU IO\_FIX
INNODB\_BUFFER\_PAGE\_LRU IS\_OLD
INNODB\_BUFFER\_PAGE\_LRU FREE\_PAGE\_CLOCK
INNODB\_SYS\_FIELDS INDEX\_ID
INNODB\_SYS\_FIELDS NAME
INNODB\_SYS\_FIELDS POS
INNODB\_CMPMEM\_RESET page\_size
INNODB\_CMPMEM\_RESET buffer\_pool\_instance
INNODB\_CMPMEM\_RESET pages\_used
INNODB\_CMPMEM\_RESET pages\_free
INNODB\_CMPMEM\_RESET relocation\_ops
INNODB\_CMPMEM\_RESET relocation\_time
INNODB\_SYS\_COLUMNS TABLE\_ID
INNODB\_SYS\_COLUMNS NAME
INNODB\_SYS\_COLUMNS POS
INNODB\_SYS\_COLUMNS MTYPE
INNODB\_SYS\_COLUMNS PRTYPE
INNODB\_SYS\_COLUMNS LEN
INNODB\_FT\_INDEX\_TABLE WORD
INNODB\_FT\_INDEX\_TABLE FIRST\_DOC\_ID
INNODB\_FT\_INDEX\_TABLE LAST\_DOC\_ID
INNODB\_FT\_INDEX\_TABLE DOC\_COUNT
INNODB\_FT\_INDEX\_TABLE DOC\_ID
INNODB\_FT\_INDEX\_TABLE POSITION
INNODB\_CMP\_PER\_INDEX\_RESET database\_name
INNODB\_CMP\_PER\_INDEX\_RESET table\_name
INNODB\_CMP\_PER\_INDEX\_RESET index\_name
INNODB\_CMP\_PER\_INDEX\_RESET compress\_ops
INNODB\_CMP\_PER\_INDEX\_RESET compress\_ops\_ok
INNODB\_CMP\_PER\_INDEX\_RESET compress\_time
INNODB\_CMP\_PER\_INDEX\_RESET uncompress\_ops
INNODB\_CMP\_PER\_INDEX\_RESET uncompress\_time
user\_variables VARIABLE\_NAME
user\_variables VARIABLE\_VALUE
user\_variables VARIABLE\_TYPE
user\_variables CHARACTER\_SET\_NAME
INNODB\_FT\_INDEX\_CACHE WORD
INNODB\_FT\_INDEX\_CACHE FIRST\_DOC\_ID
INNODB\_FT\_INDEX\_CACHE LAST\_DOC\_ID
INNODB\_FT\_INDEX\_CACHE DOC\_COUNT
INNODB\_FT\_INDEX\_CACHE DOC\_ID
INNODB\_FT\_INDEX\_CACHE POSITION
INNODB\_SYS\_FOREIGN\_COLS ID
INNODB\_SYS\_FOREIGN\_COLS FOR\_COL\_NAME
INNODB\_SYS\_FOREIGN\_COLS REF\_COL\_NAME
INNODB\_SYS\_FOREIGN\_COLS POS
INNODB\_FT\_BEING\_DELETED DOC\_ID
INNODB\_BUFFER\_POOL\_STATS POOL\_ID
INNODB\_BUFFER\_POOL\_STATS POOL\_SIZE
INNODB\_BUFFER\_POOL\_STATS FREE\_BUFFERS
INNODB\_BUFFER\_POOL\_STATS DATABASE\_PAGES
INNODB\_BUFFER\_POOL\_STATS OLD\_DATABASE\_PAGES
INNODB\_BUFFER\_POOL\_STATS MODIFIED\_DATABASE\_PAGES
INNODB\_BUFFER\_POOL\_STATS PENDING\_DECOMPRESS
INNODB\_BUFFER\_POOL\_STATS PENDING\_READS
INNODB\_BUFFER\_POOL\_STATS PENDING\_FLUSH\_LRU
INNODB\_BUFFER\_POOL\_STATS PENDING\_FLUSH\_LIST
INNODB\_BUFFER\_POOL\_STATS PAGES\_MADE\_YOUNG
INNODB\_BUFFER\_POOL\_STATS PAGES\_NOT\_MADE\_YOUNG
INNODB\_BUFFER\_POOL\_STATS PAGES\_MADE\_YOUNG\_RATE
INNODB\_BUFFER\_POOL\_STATS PAGES\_MADE\_NOT\_YOUNG\_RATE
INNODB\_BUFFER\_POOL\_STATS NUMBER\_PAGES\_READ
INNODB\_BUFFER\_POOL\_STATS NUMBER\_PAGES\_CREATED
INNODB\_BUFFER\_POOL\_STATS NUMBER\_PAGES\_WRITTEN
INNODB\_BUFFER\_POOL\_STATS PAGES\_READ\_RATE
INNODB\_BUFFER\_POOL\_STATS PAGES\_CREATE\_RATE
INNODB\_BUFFER\_POOL\_STATS PAGES\_WRITTEN\_RATE
INNODB\_BUFFER\_POOL\_STATS NUMBER\_PAGES\_GET
INNODB\_BUFFER\_POOL\_STATS HIT\_RATE
INNODB\_BUFFER\_POOL\_STATS YOUNG\_MAKE\_PER\_THOUSAND\_GETS
INNODB\_BUFFER\_POOL\_STATS NOT\_YOUNG\_MAKE\_PER\_THOUSAND\_GETS
INNODB\_BUFFER\_POOL\_STATS NUMBER\_PAGES\_READ\_AHEAD
INNODB\_BUFFER\_POOL\_STATS NUMBER\_READ\_AHEAD\_EVICTED
INNODB\_BUFFER\_POOL\_STATS READ\_AHEAD\_RATE
INNODB\_BUFFER\_POOL\_STATS READ\_AHEAD\_EVICTED\_RATE
INNODB\_BUFFER\_POOL\_STATS LRU\_IO\_TOTAL
INNODB\_BUFFER\_POOL\_STATS LRU\_IO\_CURRENT
INNODB\_BUFFER\_POOL\_STATS UNCOMPRESS\_TOTAL
INNODB\_BUFFER\_POOL\_STATS UNCOMPRESS\_CURRENT
INNODB\_TRX trx\_id
INNODB\_TRX trx\_state
INNODB\_TRX trx\_started
INNODB\_TRX trx\_requested\_lock\_id
INNODB\_TRX trx\_wait\_started
INNODB\_TRX trx\_weight
INNODB\_TRX trx\_mysql\_thread\_id
INNODB\_TRX trx\_query
INNODB\_TRX trx\_operation\_state
INNODB\_TRX trx\_tables\_in\_use
INNODB\_TRX trx\_tables\_locked
INNODB\_TRX trx\_lock\_structs
INNODB\_TRX trx\_lock\_memory\_bytes
INNODB\_TRX trx\_rows\_locked
INNODB\_TRX trx\_rows\_modified
INNODB\_TRX trx\_concurrency\_tickets
INNODB\_TRX trx\_isolation\_level
INNODB\_TRX trx\_unique\_checks
INNODB\_TRX trx\_foreign\_key\_checks
INNODB\_TRX trx\_last\_foreign\_key\_error
INNODB\_TRX trx\_is\_read\_only
INNODB\_TRX trx\_autocommit\_non\_locking
INNODB\_SYS\_FOREIGN ID
INNODB\_SYS\_FOREIGN FOR\_NAME
INNODB\_SYS\_FOREIGN REF\_NAME
INNODB\_SYS\_FOREIGN N\_COLS
INNODB\_SYS\_FOREIGN TYPE
INNODB\_SYS\_TABLES TABLE\_ID
INNODB\_SYS\_TABLES NAME
INNODB\_SYS\_TABLES FLAG
INNODB\_SYS\_TABLES N\_COLS
INNODB\_SYS\_TABLES SPACE
INNODB\_SYS\_TABLES ROW\_FORMAT
INNODB\_SYS\_TABLES ZIP\_PAGE\_SIZE
INNODB\_SYS\_TABLES SPACE\_TYPE
INNODB\_FT\_DEFAULT\_STOPWORD value
INNODB\_FT\_CONFIG KEY
INNODB\_FT\_CONFIG VALUE
INNODB\_BUFFER\_PAGE POOL\_ID
INNODB\_BUFFER\_PAGE BLOCK\_ID
INNODB\_BUFFER\_PAGE SPACE
INNODB\_BUFFER\_PAGE PAGE\_NUMBER
INNODB\_BUFFER\_PAGE PAGE\_TYPE
INNODB\_BUFFER\_PAGE FLUSH\_TYPE
INNODB\_BUFFER\_PAGE FIX\_COUNT
INNODB\_BUFFER\_PAGE IS\_HASHED
INNODB\_BUFFER\_PAGE NEWEST\_MODIFICATION
INNODB\_BUFFER\_PAGE OLDEST\_MODIFICATION
INNODB\_BUFFER\_PAGE ACCESS\_TIME
INNODB\_BUFFER\_PAGE TABLE\_NAME
INNODB\_BUFFER\_PAGE INDEX\_NAME
INNODB\_BUFFER\_PAGE NUMBER\_RECORDS
INNODB\_BUFFER\_PAGE DATA\_SIZE
INNODB\_BUFFER\_PAGE COMPRESSED\_SIZE
INNODB\_BUFFER\_PAGE PAGE\_STATE
INNODB\_BUFFER\_PAGE IO\_FIX
INNODB\_BUFFER\_PAGE IS\_OLD
INNODB\_BUFFER\_PAGE FREE\_PAGE\_CLOCK
INNODB\_SYS\_TABLESPACES SPACE
INNODB\_SYS\_TABLESPACES NAME
INNODB\_SYS\_TABLESPACES FLAG
INNODB\_SYS\_TABLESPACES ROW\_FORMAT
INNODB\_SYS\_TABLESPACES PAGE\_SIZE
INNODB\_SYS\_TABLESPACES ZIP\_PAGE\_SIZE
INNODB\_SYS\_TABLESPACES SPACE\_TYPE
INNODB\_SYS\_TABLESPACES FS\_BLOCK\_SIZE
INNODB\_SYS\_TABLESPACES FILE\_SIZE
INNODB\_SYS\_TABLESPACES ALLOCATED\_SIZE
INNODB\_METRICS NAME
INNODB\_METRICS SUBSYSTEM
INNODB\_METRICS COUNT
INNODB\_METRICS MAX\_COUNT
INNODB\_METRICS MIN\_COUNT
INNODB\_METRICS AVG\_COUNT
INNODB\_METRICS COUNT\_RESET
INNODB\_METRICS MAX\_COUNT\_RESET
INNODB\_METRICS MIN\_COUNT\_RESET
INNODB\_METRICS AVG\_COUNT\_RESET
INNODB\_METRICS TIME\_ENABLED
INNODB\_METRICS TIME\_DISABLED
INNODB\_METRICS TIME\_ELAPSED
INNODB\_METRICS TIME\_RESET
INNODB\_METRICS STATUS
INNODB\_METRICS TYPE
INNODB\_METRICS COMMENT
INNODB\_SYS\_INDEXES INDEX\_ID
INNODB\_SYS\_INDEXES NAME
INNODB\_SYS\_INDEXES TABLE\_ID
INNODB\_SYS\_INDEXES TYPE
INNODB\_SYS\_INDEXES N\_FIELDS
INNODB\_SYS\_INDEXES PAGE\_NO
INNODB\_SYS\_INDEXES SPACE
INNODB\_SYS\_INDEXES MERGE\_THRESHOLD
INNODB\_SYS\_VIRTUAL TABLE\_ID
INNODB\_SYS\_VIRTUAL POS
INNODB\_SYS\_VIRTUAL BASE\_POS
INNODB\_TABLESPACES\_SCRUBBING SPACE
INNODB\_TABLESPACES\_SCRUBBING NAME
INNODB\_TABLESPACES\_SCRUBBING COMPRESSED
INNODB\_TABLESPACES\_SCRUBBING LAST\_SCRUB\_COMPLETED
INNODB\_TABLESPACES\_SCRUBBING CURRENT\_SCRUB\_STARTED
INNODB\_TABLESPACES\_SCRUBBING CURRENT\_SCRUB\_ACTIVE\_THREADS
INNODB\_TABLESPACES\_SCRUBBING CURRENT\_SCRUB\_PAGE\_NUMBER
INNODB\_TABLESPACES\_SCRUBBING CURRENT\_SCRUB\_MAX\_PAGE\_NUMBER
INNODB\_TABLESPACES\_SCRUBBING ON\_SSD
INNODB\_SYS\_SEMAPHORE\_WAITS THREAD\_ID
INNODB\_SYS\_SEMAPHORE\_WAITS OBJECT\_NAME
INNODB\_SYS\_SEMAPHORE\_WAITS FILE
INNODB\_SYS\_SEMAPHORE\_WAITS LINE
INNODB\_SYS\_SEMAPHORE\_WAITS WAIT\_TIME
INNODB\_SYS\_SEMAPHORE\_WAITS WAIT\_OBJECT
INNODB\_SYS\_SEMAPHORE\_WAITS WAIT\_TYPE
INNODB\_SYS\_SEMAPHORE\_WAITS HOLDER\_THREAD\_ID
INNODB\_SYS\_SEMAPHORE\_WAITS HOLDER\_FILE
INNODB\_SYS\_SEMAPHORE\_WAITS HOLDER\_LINE
INNODB\_SYS\_SEMAPHORE\_WAITS CREATED\_FILE
INNODB\_SYS\_SEMAPHORE\_WAITS CREATED\_LINE
INNODB\_SYS\_SEMAPHORE\_WAITS WRITER\_THREAD
INNODB\_SYS\_SEMAPHORE\_WAITS RESERVATION\_MODE
INNODB\_SYS\_SEMAPHORE\_WAITS READERS
INNODB\_SYS\_SEMAPHORE\_WAITS WAITERS\_FLAG
INNODB\_SYS\_SEMAPHORE\_WAITS LOCK\_WORD
INNODB\_SYS\_SEMAPHORE\_WAITS LAST\_WRITER\_FILE
INNODB\_SYS\_SEMAPHORE\_WAITS LAST\_WRITER\_LINE
INNODB\_SYS\_SEMAPHORE\_WAITS OS\_WAIT\_COUNT
Tables & Columns
sql
-- DB 특정 테이블 코멘트 조회
SELECT 
    table_name, table_comment
FROM
    information_schema.tables
WHERE
    table_schema = 'DB 이름' AND table_name = '테이블 이름';

-- DB 특정 테이블 컬럼 코멘트 조회
SELECT
    table_name, column_name, column_comment
FROM
    information_schema.columns
WHERE
    table_schema = 'DB 이름' AND table_name = '테이블 이름';

-- Column 명으로 테이블 찾기
SELECT
	table_schema, table_name, 
	(SELECT
			table_comment
		FROM 
			information_shcema.tables B
		WHERE
			B.table_schema=A.table_schema AND
			B.table_name=A.table_name) AS table_comment,
	column_name, column_comment,
	CONCAT('SELECT * FROM ',
		table_schema,'.',table_name,
		' WHERE ',column_name,' = ','\'',:txt,'\'') AS sample
FROM
	information_schema.columns A 
WHERE
	table_schema IN (:schema1,:schema2) AND
	column_name LIKE :likeVal AND
	column_name NOT LIKE :notLikeVal;
Constraint (FK)
개요
  • 자식 컬럼은 (Not Null이 아닌 경우 Null도 가능.) 부모 컬럼에 존재하는 값으로만 UPDATE 가능
  • 부모 컬럼의 업데이트규칙은 하단의 Options에 따른다
Options
sql
ON UPDATE CASCADE: 이 옵션을 사용하면 참조된 키 값이 상위 테이블에서 업데이트될 때 수행할 캐스케이드 작업을 정의할 수 있습니다. 상위 키 값을 업데이트하면 DBMS는 하위 테이블의 해당 외래 키 값을 자동으로 업데이트합니다.
ON UPDATE SET NULL: 이 옵션은 부모 테이블에서 참조 키 값이 업데이트되면 외래 키 열을 NULL로 설정합니다.
ON UPDATE SET DEFAULT: SET NULL과 유사하게, 이 옵션은 부모 테이블에서 참조된 키 값이 업데이트되면 외래 키 열을 기본값으로 설정합니다.
ON UPDATE NO ACTION / RESTRICT: 이러한 옵션은 참조 무결성을 위반하는 경우 업데이트를 방지합니다. 업데이트로 인해 존재하지 않는 값을 가리키는 외래 키 참조가 발생하면 오류가 발생합니다.
Select
sql
-- 스키마 내 모든 키에 FK룰 조인
SELECT
        B.CONSTRAINT_NAME,
        CONCAT(B.TABLE_SCHEMA,'.',B.TABLE_NAME) AS TABLE_NAME,
        B.COLUMN_NAME,
        B.REFERENCED_TABLE_NAME,
        B.REFERENCED_COLUMN_NAME,
		(SELECT
		     A.UPDATE_RULE
		 FROM
		     INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS A
		 WHERE
		     A.CONSTRAINT_SCHEMA=B.TABLE_SCHEMA AND
		     A.CONSTRAINT_NAME=B.CONSTRAINT_NAME) AS UPDATE_RULE,
		(SELECT
		     A.DELETE_RULE
		 FROM
		     INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS A
		 WHERE
		     A.CONSTRAINT_SCHEMA=B.TABLE_SCHEMA AND
		     A.CONSTRAINT_NAME=B.CONSTRAINT_NAME) AS DELETE_RULE
FROM
		INFORMATION_SCHEMA.KEY_COLUMN_USAGE B
WHERE
		B.TABLE_SCHEMA IN (:schema1,:schema2);

-- 스키마 내 모든 키에 FK룰 조인
SELECT
        B.CONSTRAINT_NAME,
        CONCAT(B.TABLE_SCHEMA,'.',B.TABLE_NAME) AS TABLE_NAME,
        B.COLUMN_NAME,
        B.REFERENCED_TABLE_NAME,
        B.REFERENCED_COLUMN_NAME,
		     A.UPDATE_RULE,
		     A.DELETE_RULE
FROM
		INFORMATION_SCHEMA.KEY_COLUMN_USAGE B //모든 컬럼키 조회
LEFT JOIN
		INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS A //FK 제약조건
ON 
		A.CONSTRAINT_SCHEMA=B.TABLE_SCHEMA AND
		A.CONSTRAINT_NAME=B.CONSTRAINT_NAME
WHERE
		B.TABLE_SCHEMA IN (:schema1,:schema2);

-- 부모컬럼명으로 FK 찾기
SELECT *
FROM
	INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
WHERE
	CONSTRAINT_NAME IN (
		SELECT CONSTRAINT_NAME
		FROM
			INFORMATION_SCHEMA.KEY_COLUMN_USAGE
		WHERE
			REFERENCED_COLUMN_NAME IN (${Refer}));
Create
sql
-- Step 1: Drop the existing foreign key constraint
ALTER TABLE Orders
DROP CONSTRAINT FK_Orders_Customers;

-- Step 2: Recreate the foreign key constraint with ON UPDATE CASCADE
ALTER TABLE Orders
ADD CONSTRAINT FK_Orders_Customers
FOREIGN KEY (customer_id) REFERENCES Customers(customer_id)
ON UPDATE CASCADE;

DML & DCL

Global
sql
-- show
SHOW DATABASES;
SHOW TABLES;
SHOW GRANTS;
SHOW PROCESSLIST;
#전체목록 확인
SHOW PROCEDURE STATUS;
#특정DB 프로시저 확인
SHOW PROCEDURE STATUS WHERE db = {database};
#프로시저 like로 찾기
SHOW PROCEDURE STATUS WHERE name like '%{tabase}%';
#DDL 확인
SHOW CREATE PROCEDURE {procedure name};

-- 계정생성 및 권한
DROP USER `keycloak`@`%`;
SELECT PASSWORD('keycloak');
GRANT ALL PRIVILEGES ON *.* TO `keycloak`@`%` IDENTIFIED BY PASSWORD '*E8B5B94D94ACED08A21FC304D615045DBC4EA5D7' WITH GRANT OPTION;
FLUSH PRIVILEGES;

-- 비밀번호 변경
SET PASSWORD FOR 'maxscale'@'10.0.X.X' = PASSWORD('cloud1234');
FLUSH PRIVILEGES;

-- auto increment 초기화
ALTER TABLE ECP_ADMIN.TADP_USER AUTO_INCREMENT=1;
Default Func
sql
# Date
SELECT FROM_UNIXTIME({ MILLISECOND }); -- -> DATETIME 반환
SELECT FROM_UNIXTIME({ MILLISECOND }, '%Y%m%d %H%i%s'); -- -> 특정 DATEFORMAT으로 변환
SELECT UNIX_TIMESTAMP() -- 현재 UNIXTIME
SELECT DATE_ADD(now(), INTERVAL 1 day));
/* Interval Units
   - year : 년
   - month : 월
   - day : 일
   - hour : 시간
   - minute : 분
   - secont : 초
*/
SELECT DATE_FORMAT(regdate, "%Y%m%d %H%i%s"); -- formatting
SELECT DAYOFWEEK(date); -- 요일을 정수로 반환(1=일요일, 7=토요일)
SELECT DAYOFMONTH(date); -- 월의 몇번째 날인지를 정수로 반환
SELECT DAYOFYEAR(date); -- 년중 몇번째 날인지를 정수로 반환
SELECT MONTH(date); -- 월을 1∼12의 정수로 반환
SELECT DAYNAME(date); -- 요일 이름을 문자로 반환
SELECT MONTHNAME(date); -- 월 이름을 문자로 반환
SELECT YEAR(date); -- 년도를 4자리 정수로 반환
SELECT now(),sysdate(); -- 현재시간및날짜를 반환한다.(DATETIME형으로 출력)
SELECT curdate(); -- 현재날자를 반환한다.(DATE형으로 출력)
SELECT curtime(); -- 현재시간을 반환한다.-(TIME형으로 출력)

# String
SELECT SUBSTR($str, $position, $length); -- $str전체 중 $position 위치부터 $length만큼

# Type
SELECT CAST($str AS unsigned); -- $str을 부호없는 숫자타입으로 변환
/* Cast Types
   - binary
   - char
   - signed (부호있는 숫자)
   - date
   - datetime
   - time
   - unsigned (부호없는 숫자)
*/
sql
#DATETIME
time type --(23:01:01등의 시간:분:초를 저장 컬럼-3바이트)
date type --(1000-01-01부터 9999-12-31 저장하는 날짜저장 컬럼-3바이트)
year type --(1970~2069년도를 저장-1바이트)
datetime type --(1000-01-01 00:00:00부터 9999-12-31 23:59:59저장하는 날짜저장 컬럼-8바이트)
timestamp type --4바이트 mysql에서는 timestamp형은 새로운열이나 insert나 해당열에 update시에 자동으로 입력되어지는 날짜형이다. 입력되어지는 날짜형식은 20060301133638 와 같이 -와 :가 없이 붙어서 입력된다.
-- ※ timestamp값은 1970년01월01일 00:00:00 이후부터 현재까지 지난기간을 초를 환산하여 표현한 값입니다.

/* MySQL에서의 날짜/시간 관련 쿼리
varchar 타입에는 timestamp형,date형이 들어가며 between 예약어를 사용한 쿼리도 사용할수 있다. = 연산자는 검색이 된다.
timestamp 타입에는 now()을 넣으면 -와 :을 제외한 값이 들어간다.
timestamp 타입에는 unix_timestamp 형식은 제대로 들어가지 않는다.
INT 타입에는 unix_timestamp 형식은 제대로 들어가지 않는다.
unix_timestamp 형식은 INT형이나 VARCHAR형에 넣어야 한다.
*/
DATE_FORMAT()
Option Description
%a Short weekday name in current locale (Variable [lc\_time\_names](https://mariadb.com/kb/en/server-system-variables/#lc_time_names)).
%b Short form month name in current locale. For locale en\_US this is one of: Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov or Dec.
%c Month with 1 or 2 digits.
%D Day with English suffix ‘th’, ‘nd’, ‘st’ or ‘rd”. (1st, 2nd, 3rd…).
%d Day with 2 digits.
%e Day with 1 or 2 digits.
%f [Microseconds](https://mariadb.com/kb/en/microseconds-in-mariadb/) 6 digits.
%H Hour with 2 digits between 00-23.
%h Hour with 2 digits between 01-12.
%I Hour with 2 digits between 01-12.
%i Minute with 2 digits.
%j Day of the year (001-366)
%k Hour with 1 digits between 0-23.
%l Hour with 1 digits between 1-12.
%M Full month name in current locale (Variable [lc\_time\_names](https://mariadb.com/kb/en/server-system-variables/#lc_time_names)).
%m Month with 2 digits.
%p AM/PM according to current locale (Variable [lc\_time\_names](https://mariadb.com/kb/en/server-system-variables/#lc_time_names)).
%r Time in 12 hour format, followed by AM/PM. Short for ‘%I:%i:%S %p’.
%S Seconds with 2 digits.
%s Seconds with 2 digits.
%T Time in 24 hour format. Short for ‘%H:%i:%S’.
%U Week number (00-53), when first day of the week is Sunday.
%u Week number (00-53), when first day of the week is Monday.
%V Week number (01-53), when first day of the week is Sunday. Used with %X.
%v Week number (01-53), when first day of the week is Monday. Used with %x.
%W Full weekday name in current locale (Variable [lc\_time\_names](https://mariadb.com/kb/en/server-system-variables/#lc_time_names)).
%w Day of the week. 0 = Sunday, 6 = Saturday.
%X Year with 4 digits when first day of the week is Sunday. Used with %V.
%x Year with 4 digits when first day of the week is Monday. Used with %v.
%Y Year with 4 digits.
%y Year with 2 digits.
%Z Timezone abbreviation. From [MariaDB 11.3.0](https://mariadb.com/kb/en/mariadb-11-3-0-release-notes/).
%z Numeric timezone +hhmm or -hhmm presenting the hour and minute offset from UTC. From [MariaDB 11.3.0](https://mariadb.com/kb/en/mariadb-11-3-0-release-notes/).
%# For [str\_to\_date](https://mariadb.com/kb/en/str_to_date/)(), skip all numbers.
%. For [str\_to\_date](https://mariadb.com/kb/en/str_to_date/)(), skip all punctation characters.
%@ For [str\_to\_date](https://mariadb.com/kb/en/str_to_date/)(), skip all alpha characters.
%% A literal % character.
  • with STANDARD FORMAT
    • DATE_FORMAT( ${VALUE_DATETIME}, GET_FORMAT(${TYPE}, '${ORG}') )

      • VALUE_DATETIME: 포맷팅 대상 datetime 밸류
      • TYPE: DATETIME, DATE, TIME중 하나 선택
      • ORG: 표준기관 선택 – \`’ISO’, ‘JIS’, ‘EUR’
Procedure :: Result of 2 or more columns value
sql
-- init, while
DELIMITER $$
CREATE PROCEDURE addSysErrGrp()
BEGIN
    DECLARE i INT DEFAULT 1;
    WHILE (i <= 19) DO #여기
        INSERT INTO TADP_SYS_ERR_GRP(SYS_ERR_GRP_IDX, CREAT_DT, UPD_DT) VALUE (i, UNIX_TIMESTAMP(), UNIX_TIMESTAMP());
        SET i = i + 1;
    END WHILE;
END$$
DELIMITER ;
Function :: Result of 1 column value
sql
DROP FUNCTION IF EXISTS ECP_USER.FN_BILL_CALCULATE_MONTHLY;
CREATE FUNCTION ECP_USER.FN_BILL_CALCULATE_MONTHLY(
    P_YEAR_MONTH VARCHAR(6),
    P_ORG_CD VARCHAR(16),
    P_TAG_GRP_CD varchar(50),
    P_MODE varchar(10)
) RETURNS VARCHAR(2000)
BEGIN
END;
VARIABLE
세션변수 선언
bash
SET @var = '';
로컬변수 선언 (non-transactonal)
yaml
BEGIN NOT ATOMIC
    DECLARE P_ORG_CD VARCHAR(10) DEFAULT '1000001';
    DECLARE P_BL_DATE VARCHAR(10) DEFAULT '202504';
    DECLARE P_TAG_GRP_CD VARCHAR(50) DEFAULT '241024_test';
END;
로컬변수 선언 — procedure
bash
DELIMITER $$
	BEGIN
		DECLARE var $TYPE [ DEFAULT $value ];
	END $$
DELIMITER

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *