zoukankan      html  css  js  c++  java
  • MySQL-快捷查询

    1.查询正在运行中的事务

    2.查看当前连接,并且能够知晓连接数

    3.查看一个表的大小

    4.查看某个数据库所有表的大小

    5.查看库的大小,剩余空间的大小

    6.查找关于锁

     information_schema使用

    1.查询正在运行中的事务

    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.查看当前连接,并且能够知晓连接数

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

    3.查看一个表的大小

    select concat(round(sum(DATA_LENGTH/1024/1024),2),'M') from information_schema.tables where table_schema='数据库名' AND table_name='表名';

    4.查看某个数据库所有表的大小

    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.查看库的大小,剩余空间的大小

    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.查找关于锁

    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_idG

    information_schema的使用

    1.查看各个库下的表数据大小

    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.查看各个数据库的数据大小

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

    3.查看实例有没有主键

    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.查看实例中哪些字段可以为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.查看实例中有哪些存储过程和函数

    #存储过程
    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'); #函数 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.查看实例中哪些表字段字符集和默认字符集不一致

    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.查看实例中哪些表字段字符校验规则和默认的不一致

    查看当前字符集和校对规则设置

    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.查看哪些账号有除了select、update、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.查看实例中哪些表不是默认存储引擎,以默认存储引擎为innodb为例

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

    10.查看实例中哪些表有外键

    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.查看实例中哪些表字段有级联更新

    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.如何根据用户名、连接时间、执行的sql等过滤当前实例中的连接信息

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

    13.查看数据库中没有索引的表

    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.查看数据库中有索引的表,建立了哪些索引

    显示结果:库名、表名、索引名

    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 ;
  • 相关阅读:
    建议博客园搭个威客平台,可行的发展方向和盈利方向
    SQLServer DBA 三十问(第11~20题)
    sqlserver2000中nvarchar保存韩文乱码问题解决
    beginning Linux programming读书笔记(2)之shell编程
    IBM打狗问题
    Perl入门笔记2之第二章 标量数据
    linux面试大全
    结构体对齐详解
    Linux下静态链接库与动态链接库的区别
    Perl入门 笔记1之第一章简介
  • 原文地址:https://www.cnblogs.com/together0807/p/9962434.html
Copyright © 2011-2022 走看看