User Tools

Site Tools


dba:mysql:mysql_basic_queries

[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