dba:mysql:mysql_basic_queries
Table of Contents
[DOC] Mysql basic queries
Status information
SHOW AUTHORS SHOW {BINARY | MASTER} LOGS SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offset,] ROW_COUNT] SHOW CHARACTER SET [like_or_where] SHOW COLLATION [like_or_where] SHOW [FULL] COLUMNS FROM tbl_name [FROM db_name] [like_or_where] SHOW CONTRIBUTORS SHOW CREATE DATABASE db_name SHOW CREATE EVENT event_name SHOW CREATE FUNCTION func_name SHOW CREATE PROCEDURE proc_name SHOW CREATE TABLE tbl_name SHOW CREATE TRIGGER trigger_name SHOW CREATE VIEW view_name SHOW DATABASES [like_or_where] SHOW ENGINE engine_name {STATUS | MUTEX} SHOW [STORAGE] ENGINES SHOW ERRORS [LIMIT [offset,] ROW_COUNT] SHOW EVENTS SHOW FUNCTION CODE func_name SHOW FUNCTION STATUS [like_or_where] SHOW GRANTS FOR USER SHOW INDEX FROM tbl_name [FROM db_name] SHOW MASTER STATUS SHOW OPEN TABLES [FROM db_name] [like_or_where] SHOW PLUGINS SHOW PROCEDURE CODE proc_name SHOW PROCEDURE STATUS [like_or_where] SHOW PRIVILEGES SHOW [FULL] PROCESSLIST SHOW PROFILE [types] [FOR QUERY n] [OFFSET n] [LIMIT n] SHOW PROFILES SHOW SLAVE HOSTS SHOW SLAVE STATUS SHOW [GLOBAL | SESSION] STATUS [like_or_where] SHOW TABLE STATUS [FROM db_name] [like_or_where] SHOW [FULL] TABLES [FROM db_name] [like_or_where] SHOW TRIGGERS [FROM db_name] [like_or_where] SHOW [GLOBAL | SESSION] VARIABLES [like_or_where] SHOW WARNINGS [LIMIT [offset,] ROW_COUNT]
List parameters/variables
Config parameters are known as “variables” on MySQL:
SHOW VARIABLES ;
SHOW VARIABLES LIKE '%search%' ;
Version
SELECT @@version AS 'MySQL Version';
Listing Objects
All SHOW <OBJECT_TYPE>
commands accept “like” to limit the query results:
LIKE '%OBJECT_NAME%' ;
List databases
- snippet.sql
SELECT schema_name FROM information_schema.SCHEMATA WHERE schema_name LIKE '%DB_NAME%';
List functions
SHOW FUNCTION STATUS ;
List Procedures
SHOW PROCEDURE STATUS ;
List Triggers
SHOW TRIGGERS ;
List Tables
All tables with info
- snippet.sql
SELECT table_schema, TABLE_NAME, table_type, table_rows, engine, version FROM information_schema.tables;
All non-system tables with info
- snippet.sql
SELECT table_schema, TABLE_NAME, table_type, table_rows, engine, version FROM information_schema.tables WHERE table_schema NOT IN ( 'information_schema', 'mysql', 'sys') ;
Show tables commands
SHOW TABLES ;
SHOW FULL TABLES ;
SHOW TABLE STATUS ;
List Table indexes
SHOW INDEX FROM tbl_name [FROM db_name]
SELECT TABLE_SCHEMA, TABLE_NAME, INDEX_NAME, INDEX_TYPE, COLUMN_NAME FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = 'your_schema' AND TABLE_NAME = 'TABLE_NAME' ORDER BY 1, 2, 3 ;
DBA life
Performance_schema
To be able to use performance_schema
it must be enabled first…
[mysqld] performance_schema=ON
Query performance
query history
SELECT thread_id, event_id, sql_text FROM events_statements_history;
Memory
Global summary
SELECT event_name, current_count_used, sys.format_bytes (current_number_of_bytes_used) current_number_of_bytes_used, count_alloc, sys.format_bytes (sum_number_of_bytes_alloc) sum_number_of_bytes_alloc, count_free, sys.format_bytes (sum_number_of_bytes_free) sum_number_of_bytes_free FROM performance_schema.memory_summary_global_by_event_name ORDER BY SUM_NUMBER_OF_BYTES_ALLOC DESC LIMIT 30;
memory by event
SELECT EVENT_NAME, COUNT_ALLOC, COUNT_FREE, SUM_NUMBER_OF_BYTES_ALLOC, SUM_NUMBER_OF_BYTES_FREE FROM performance_schema.memory_summary_global_by_event_name WHERE count_alloc > 1 ORDER BY count_alloc;
per user
SELECT IFNULL (USER, 'mysqld_background') AS USER, current_count_used AS curr_count, sys.format_bytes (current_number_of_bytes_used) curr_alloc, count_alloc, sys.format_bytes (sum_number_of_bytes_alloc) total_alloc, count_free, sys.format_bytes (sum_number_of_bytes_free) total_free FROM performance_schema.memory_summary_by_user_by_event_name WHERE current_number_of_bytes_used > 0 ORDER BY current_number_of_bytes_used DESC;
Index usage
SELECT object_name, index_name, count_star, count_read, count_write FROM performance_schema.table_io_waits_summary_by_index_usage WHERE object_name = 'TABLE_NAME' ;
Sessions
- snippet.sql
SELECT id, USER, host, db, command, TIME, state, info FROM information_schema.processlist;
Active:
- snippet.sql
SELECT id, USER, host, db, command, TIME, state, info FROM information_schema.processlist WHERE command <>'Sleep';
DDL/Metadata
Table
SHOW CREATE TABLE TABLENAME ;
Function
SHOW CREATE FUNCTION FUNCTIONNAME ;
o
SELECT body_utf8 FROM mysql.proc WHERE db='<DATABASENAME>' AND name='FUNCTIONNAME' AND TYPE='FUNCTION' ;
Master/Slave
Master status
SHOW master STATUS ;
Slave status
SHOW slave STATUS \G
binlog purge
PURGE BINARY LOGS TO 'mysql-bin.000060';
Skip slave instruction
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
Reset slave
In the case that the slave keep old settings (like renaming the relay-log)
reset slave ;
dba/mysql/mysql_basic_queries.txt · Last modified: 2024/11/26 16:27 by dodger