MySQL Database Performance Tuning & Slow

๐Ÿ’ก MySQL Database Performance Tuning & Slow โ€” Executive Summary

Technical architectural analysis, practical configuration manifests, and deployment instructions for MySQL Database Performance Tuning & Slow.

Server Only

Subpage
Command In Server
bash
tee ./$filename
# ์ดํ›„ ์ฟผ๋ฆฌ์ฝ˜์†”๋‚ด์—์„œ ํด๋ผ์ด์–ธํŠธ ์ข…๋ฃŒ์‹œ์ ๊นŒ์ง€ ๋‚˜์˜ค๋Š” ๋ชจ๋“  ์ถœ๋ ฅ์„ ํŒŒ์ผ์— ๊ธฐ๋ก
Expression in CLI
sql
\e #์ค„๋ฐ”๊ฟˆ SQL ์‹คํ–‰
\G #pretty print
Setting up
Resolving issues related to 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)
Overview
  • Child columns can only be UPDATEd with values that exist in the parent column (Null is also possible if Not Null)
  • Update rules for parent columns follow the Options below
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 value to format
      • TYPE: Select one of DATETIME, DATE, or TIME
      • ORG: Select standard organization โ€“ \`โ€™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
Session variable declaration
bash
SET @var = '';
Declaration of local variable (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;
Declaration of local variables โ€” 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 *