1024programmer Mysql How to quickly query mysql

How to quickly query mysql

Mysql quick query method: 1. Query the running transaction; 2. View the current connection, and know the number of connections; 3. View the size of a table; 4. View all tables of a database size.

More related free learning recommendation: mysql tutorial (video)

mysql quick query Method:

1. Query running transactions

select p.id,p.user,p  .host,p.db,p.command,p.time,i.trx_state,i.trx_started,p.info from information_schema.processlist p,information_schema.innodb_trx i where p.id=i.trx_mysql_thread_id;

2. Check the current connection and be able to know the number of connections

select SUBSTRING_INDEX(host,':',1) as ip , count(*) from  information_schema.processlist group by ip;

3. Check the size of a table

select concat(round(sum(DATA_LENGTH/1024/  1024), 2), 'M') from information_schema.tables where table_schema='database name' AND table_name='table name';

4. Check the size of all tables in a database

select table_name,concat(round(sum(DATA_LENGTH/1024/1024),2),'M') from information_schema.tables where table_schema='t1' group by table_name  ;

5. Check the size of the library and the size of the remaining space

select table_schema, round((sum(data_length / 1024 / 1024  ) + sum(index_length / 1024 / 1024)), 2) dbsize, round(sum(DATA_FREE / 1024 / 1024), 2) freesize,
 round((sum(data_length / 1024 / 1024) + sum(index_length / 1024 / 1024) + sum(DATA_FREE / 1024 / 1024)), 2) spsize
 from information_schema.tables
 where table_schema not in ('mysql', 'information_schema', 'performance_schema')
 group by table_schema order by freesize desc;

6. Find about locks

select r.trx_id waiting_trx_id,r.trx_mysql_thread_id waiting_thread,r  .trx_query waiting_query, b.trx_id blocking_trx_id, b.trx_mysql_thread_id blocking_thread, b.trx_query blocking_query
 from information_schema.innodb_lock_waits w
 inner join information_schema.innodb_trx b
 on b.trx_id = w.blocking_trx_id
 inner join information_schema.innodb_trx r on r.trx_id = w.requesting_trx_id\G

Use of information_schema

1. Check the table data size under each library

select table_name,concat(round(sum(DATA_LENGTH/1024/1024),2),'M')
 from information_schema.tables where table_schema='db_name' group by table_name;

2. Check the data size of each database

select TABLE_SCHEMA,  concat(round(sum(data_length)/1024/1024,2),' MB') as data_size from information_schema.tables group by table_schema;

3. Check if the instance has a primary key

select table_schema, table_name from information_schema.tables
 where (table_schema, table_name)
 not in(select distinct table_schema, table_name from information_schema.STATISTICS where INDEX_NAME=‘PRIMARY’ )
 and table_schema not in ('sys','mysql','information_schema','performance_schema');

4. Check which fields in the instance can be null

select TABLE_SCHEMA,TABLE_NAME from COLUMNS where IS_NULLABLE='YES' and TABLE_SCHEMA not in ('information_schema','performance_schema','mysql', 'sys')\G

5 .Check which stored procedures and functions are in the instance

#stored procedure
 select ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE
 from information_schema.ROUTINES
 where ROUTINE_TYPE='PROCEDURE' and ROUTINE_SCHEMA not in ('mysql', 'sys', 'information_schema', 'performance_schema');
 #function
 select ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE
 from information_schema.ROUTINES
 where ROUTINE_TYPE='FUNCTION' and ROUTINE_SCHEMA not in ('mysql','sys','information_schema','performance_schema');

6. Check which table field character sets in the instance are inconsistent with the default character set

select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,CHARACTER_SET_NAME
 from information_schema.COLUMNS
 where (CHARACTER_SET_NAME is null or CHARACTER_SET_NAME  'utf8')
 and TABLE_SCHEMA not in ('information_schema','performance_schema','test','mysql','sys');

7. Check which table field character verification rules in the instance are inconsistent with the default

View current character set and collation rule settings

show variables like 'collation_%';
 select TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, CHARACTER_SET_NAME, COLLATION_NAME
 from information_schema.COLUMNS
 where (COLLATION_NAME is null or COLLATION_NAME  'utf8_general_ci')
 and TABLE_SCHEMA not in ('information_schema','performance_schema','test','mysql','sys');

8. Check which accounts have except select and update.Permissions other than insert

select GRANTEE,PRIVILEGE_TYPE,concat(TABLE_SCHEMA,'-',TABLE_NAME,'-',COLUMN_NAME) from COLUMN_PRIVILEGES where PRIVILEGE_TYPE not  in ('select','insert','update')
 union
 select GRANTEE,PRIVILEGE_TYPE,TABLE_SCHEMA from SCHEMA_PRIVILEGES where PRIVILEGE_TYPE not in ('select','insert','update')
 union
 select GRANTEE, PRIVILEGE_TYPE, concat(TABLE_SCHEMA,'-',TABLE_NAME) from TABLE_PRIVILEGES where PRIVILEGE_TYPE not in ('select','insert','update')
 union
 select GRANTEE,PRIVILEGE_TYPE,concat('user') from USER_PRIVILEGES where PRIVILEGE_TYPE not in ('select','insert','update');

9. Check which tables in the instance are not the default storage engine, Take the default storage engine as innodb as an example

select TABLE_NAME,ENGINE
 from information_schema.tables
 where ENGINE!='innodb' and TABLE_SCHEMA not in ('information_schema','performance_schema','test','mysql', 'sys');

10. Check which tables in the instance have foreign keys

select a.TABLE_SCHEMA,a.TABLE_NAME,a.CONSTRAINT_TYPE,a.CONSTRAINT_NAME,b.REFERENCED_TABLE_NAME,b.REFERENCED_COLUMN_NAME
 from information_schema.TABLE_CONSTRAINTS a LEFT JOIN information_schema.KEY_COLUMN_USAGE b
 ON a.CONSTRAINT_NAME=b.CONSTRAINT_NAME where a.CONSTRAINT_TYPE='FOREIGN KEY';

11. Check which table fields in the instance have cascading updates

select TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, REFERENCED_TABLE_SCHEMA, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
 from information_schema.KEY_COLUMN_USAGE
 where REFERENCED_TABLE_SCHEMA is not null
 and REFERENCED_TABLE_NAME is not null
 and REFERENCED_COLUMN_NAME is not null and table_schema not in ('information_schema','performance_schema','test','mysql', 'sys');

12. How to execute according to the user name, connection time, sql, etc. to filter the connection information in the current instance

select USER,HOST,DB from processlist where TIME>2;

13. View Tables without indexes in the database

select TABLE_SCHEMA, TABLE_NAME from information_schema.tables
 where TABLE_NAME not in (select distinct(any_value(TABLE_NAME)) from information_schema.STATISTICS group by INDEX_NAME)
 and TABLE_SCHEMA not in ('sys','mysql','information_schema','performance_schema');

14. Check the tables with indexes in the database and which indexes have been established

Display results: library name, table name, index name

select TABLE_SCHEMA, TABLE_NAME, group_concat(INDEX_NAME)
 from information_schema.STATISTICS where TABLE_SCHEMA not in ('sys','mysql','information_schema','performance_schema') group by TABLE_NAME ;

The above is the detailed content of how to quickly query mysql, more please pay attention 1024programmer.com Other related articles!

This article is from the internet and does not represent1024programmerPosition, please indicate the source when reprinting:https://www.1024programmer.com/how-to-quickly-query-mysql/

author: admin

Previous article
Next article

Leave a Reply

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

Contact Us

Contact us

181-3619-1160

Online consultation: QQ交谈

E-mail: [email protected]

Working hours: Monday to Friday, 9:00-17:30, holidays off

Follow wechat
Scan wechat and follow us

Scan wechat and follow us

Follow Weibo
Back to top
首页
微信
电话
搜索