MySQL INFORMATION_SCHEMA 使用
--查看创建的索引的CARDINALITY比率
--通常cardinality达到表数据的10%左右建索引会有意义
--如果是一个组合索引,索引第一位的cardinality表示第一个列的cardinality大小,第二列表示第一列和第二列共同的cardinality值
SELECT
T1.TABLE_SCHEMA,
T1.TABLE_NAME,
T2.INDEX_NAME,
ROUND(T2.CARDINALITY / T1.TABLE_ROWS * 100, 2) AS RATE
FROM
INFORMATION_SCHEMA.TABLES T1,
INFORMATION_SCHEMA.STATISTICS T2
WHERE
T1.TABLE_SCHEMA = T2.TABLE_SCHEMA
AND T1.TABLE_NAME = T2.TABLE_NAME
AND T2.SEQ_IN_INDEX = (SELECT
MIN(T3.SEQ_IN_INDEX)
FROM
INFORMATION_SCHEMA.STATISTICS T3
WHERE
T2.TABLE_NAME = T3.TABLE_NAME
AND T2.TABLE_SCHEMA = T3.TABLE_SCHEMA
AND T2.INDEX_NAME = T3.INDEX_NAME)
AND T1.TABLE_SCHEMA NOT IN ('MYSQL','PERFORMANCE_SCHEMA','INFORMATION_SCHEMA','SYS')
AND T1.TABLE_ROWS >=100
ORDER BY RATE;
--查看锁阻塞
-- 查看锁的SQL
SELECT
t3.trx_id waiting_trx_id,
t3.trx_mysql_thread_id waiting_thread,
t3.trx_query waiting_query,
t2.trx_id blocking_trx_id,
t2.trx_mysql_thread_id blocking_thread,
t2.trx_query blocking_query
FROM
information_schema.innodb_lock_waits t1,
information_schema.innodb_trx t2,
information_schema.innodb_trx t3
WHERE
t1.blocking_trx_id = t2.trx_id
AND t1.requesting_trx_id = t3.trx_id;
--查询出哪些表不是InnoDB引擎的
SELECT
TABLE_SCHEMA,
TABLE_NAME,
TABLE_TYPE,
ENGINE,
CREATE_TIME,
UPDATE_TIME,
TABLE_COLLATION
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA NOT IN ('information_schema' , 'mysql', 'performance_schema', 'sys')
AND ENGINE <> 'InnoDB';
--生成修改存储引擎的语句
SELECT
-- TABLE_SCHEMA,
-- TABLE_NAME,
-- TABLE_TYPE,
-- ENGINE,
-- CREATE_TIME,
-- UPDATE_TIME,
-- TABLE_COLLATION,
CONCAT('alter table ', TABLE_SCHEMA,'.',TABLE_NAME, ' engine=InnoDB;') AS alter_sql
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA NOT IN
('information_schema', 'mysql', 'performance_schema', 'sys')
AND ENGINE <> 'InnoDB';
-- 查看指定数据库的表信息
SET @table_schema='employees';
SELECT
table_name,
table_type,
engine,
table_rows,
avg_row_length,
data_length,
index_length,
table_collation,
create_time
FROM
information_schema.tables
WHERE
table_schema = @table_schema
ORDER BY table_name;
-- 查看会话连接信息
SELECT
THREAD_ID,
name,
type,
PROCESSLIST_ID,
PROCESSLIST_USER AS user,
PROCESSLIST_HOST AS host,
PROCESSLIST_DB AS db,
PROCESSLIST_COMMAND AS cmd,
PROCESSLIST_TIME AS time,
PROCESSLIST_STATE AS state,
PROCESSLIST_INFO AS info,
CONNECTION_TYPE AS type,
THREAD_OS_ID AS os_id
FROM
performance_schema.threads
WHERE
type = 'FOREGROUND'
ORDER BY THREAD_ID;
-- CHARACTER_SETS 查看数据库支持的字符集
SELECT * FROM INFORMATION_SCHEMA.CHARACTER_SETS
WHERE CHARACTER_SET_NAME LIKE 'utf%'; SHOW CHARACTER SET LIKE 'utf%';
-- COLLATIONS 字符序
-- 用于指定数据集如何排序,以及字符串的比对规则
SELECT * FROM INFORMATION_SCHEMA.COLLATIONS
WHERE COLLATION_NAME LIKE 'utf%'; SHOW COLLATION LIKE 'utf%';
-- 查看表结构定义信息
SELECT
table_name,
COLUMN_NAME,
ordinal_position,
DATA_TYPE,
IS_NULLABLE,
COLUMN_DEFAULT,
column_type,
column_key,
character_set_name,
collation_name
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
table_name = 'employees'
AND table_schema = 'employees';
show columns from employees from employees;
desc employeees.employees;
-- 查看支持的引擎
SELECT * FROM INFORMATION_SCHEMA.ENGINES;
show ENGINES;
-- 查看数据库的数据文件信息
SELECT
FILE_ID,
FILE_NAME,
FILE_TYPE,
TABLESPACE_NAME,
FREE_EXTENTS,
TOTAL_EXTENTS,
((TOTAL_EXTENTS - FREE_EXTENTS) * EXTENT_SIZE) / 1024 / 1024 AS MB_used,
EXTENT_SIZE,
INITIAL_SIZE,
MAXIMUM_SIZE,
AUTOEXTEND_SIZE,
DATA_FREE,
STATUS,
ENGINE
FROM
INFORMATION_SCHEMA.FILES;
-- 查看指定表的约束
SELECT
constraint_schema,
table_name,
constraint_name,
column_name,
ordinal_position,
CONCAT(table_name,
'.',
column_name,
' -> ',
referenced_table_name,
'.',
referenced_column_name) AS list_of_fks
FROM
information_schema.KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_SCHEMA = 'employees'
AND REFERENCED_TABLE_NAME IS NOT NULL
ORDER BY TABLE_NAME , COLUMN_NAME;
-- 查看指定分区表信息
SELECT
TABLE_SCHEMA,
table_name,
partition_name,
subpartition_name sub_par,
partition_ordinal_position par_position,
partition_method method,
partition_expression expression,
partition_description description,
table_rows
FROM
information_schema.PARTITIONS
WHERE
table_schema = 'test'
AND table_name = 't';
-- 查看支持的插件
SELECT
PLUGIN_NAME, PLUGIN_STATUS, PLUGIN_TYPE,
PLUGIN_LIBRARY, PLUGIN_LICENSE
FROM INFORMATION_SCHEMA.PLUGINS; SHOW PLUGINS;
-- 查看数据库连接信息
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST; SHOW FULL PROCESSLIST;
-- 查看数据库中的存储过程、函数等
SELECT
ROUTINE_SCHEMA,
routine_name,
ROUTINE_TYPE,
data_type,
routine_body,
routine_definition,
routine_comment
FROM
INFORMATION_SCHEMA.ROUTINES
WHERE
ROUTINE_TYPE = 'PROCEDURE'
AND ROUTINE_SCHEMA="employees";
-- 查看存在的数据库及字符集信息
SELECT
SCHEMA_NAME,
DEFAULT_CHARACTER_SET_NAME,
DEFAULT_COLLATION_NAME
FROM
INFORMATION_SCHEMA.SCHEMATA; SHOW DATABASES;
-- 查看索引信息
SELECT
table_schema,
table_name,
index_name,
COLUMN_NAME,
COLLATION,
CARDINALITY,
index_type
FROM
INFORMATION_SCHEMA.STATISTICS
WHERE
table_name = 'employees'
AND table_schema = 'employees'; SHOW INDEX FROM employees FROM employees;
-- 查看数据库大小
SELECT
table_schema 'database',
CONCAT(ROUND(SUM(data_length + index_length) / (1024 * 1024),
2),
'M') size
FROM
information_schema.TABLES
WHERE
ENGINE in ('MyISAM','InnoDB')
GROUP BY table_schema;
-- 查看表大小
SELECT
CONCAT(table_schema, '.', table_name) table_name,
CONCAT(ROUND(data_length / (1024 * 1024), 2),
'M') data_length,
CONCAT(ROUND(index_length / (1024 * 1024), 2),
'M') index_length,
CONCAT(ROUND(ROUND(data_length + index_length) / (1024 * 1024),
2),
'M') total_size,
engine
FROM
information_schema.TABLES
WHERE
table_schema NOT IN ('information_schema' , 'performance_schema', 'sys', 'mysql')
ORDER BY data_length DESC;
MySQL INFORMATION_SCHEMA 使用的更多相关文章
- (转)十分钟了结MySQL information_schema
十分钟了结MySQL information_schema 原文:http://www.cnblogs.com/shengdimaya/p/6920677.html information_sche ...
- mysql information_schema介绍
mysql information_schema介绍 一.information_schema是什么 information_schema是MySQL自带的一个信息数据库,其保存着关于MySQL服务器 ...
- MySQL information_schema表查询导致内存暴涨
case:下面的一条sql语句,导致mysql实例内存暴涨: select * from tables where table_name not in(select table_name from p ...
- 十分钟了结MySQL information_schema
information_schema数据库是MySQL系统自带的数据库,它提供了数据库元数据的访问方式.感觉information_schema就像是MySQL实例的一个百科全书,记录了数据库当中大部 ...
- mysql—information_schema数据库
一.介绍 MySQL中有一个默认数据库名为information_schema,在MySQL中我们把 information_schema 看作是一个数据库,确切说是信息数据库.其中保存着关于MySQ ...
- mysql information_schema 数据库简介:
.CHARACTER_SETS 表 CREATE TEMPORARY TABLE `CHARACTER_SETS` ( `CHARACTER_SET_NAME` varchar() NOT NULL ...
- mysql information_schema
SELECT TABLE_NAME,COLUMN_NAME,CHARACTER_MAXIMUM_LENGTH,COLUMN_COMMENT FROM COLUMNS WHERE TABLE_SCHEM ...
- [MySQL] INFORMATION_SCHEMA 数据库包含所有表的字段
sql注入后可以通过该数据库获取所有表的字段信息 1. COLLATIONS表 提供有关每个字符集的排序规则的信息. COLLATIONS表包含以下列: COLLATION_NAME 排序规则名称. ...
- mysql performance_schema 和information_schema.tables了解
这个是关于mysql的系统表,性能表,核心表操作的一些介绍,深入算不上 我们一般很少去动 mysql information_schema 信息相关 performance_schema 性能相关 ...
随机推荐
- webservice的SOAP代理设置
我们的服务器是可以访问的 设置的代理同样也可以访问 接下来设置代理 接着打开TCP窗口 最后来看数据
- codeforce 35C fire again
2017-08-25 17:04:07 writer:pprp 题目描述: • Codeforces 35C Fire Again• N*M的格子,最开始有K个点 (坐标给定) 开始着火• 每一秒着火 ...
- js执行环境的周边概念
一.熟悉几个名词: 1.执行环境(execution context),也叫执行上下文,每个函数都会有自己的执行环境:当浏览器首次加载脚本时,他将默认进入全局执行环境:如果接下来要调用一个内部函数,则 ...
- [Vue]实例化Vue时的两种挂载方式el与$mount
Vue 的$mount()为手动挂载,在项目中可用于延时挂载(例如在挂载之前要进行一些其他操作.判断等),之后要手动挂载上.new Vue时,el和$mount并没有本质上的不同. 1.el Vue实 ...
- zabbix自动化运维学习笔记(服务器安装)
最近博主开始接触自动化运维.首先就是zabbix这个开源的监控系统 一开始博主只是在自己的虚拟机上尝试安装.最后终于开始在公司的服务器上正式安装,教程博主也是通过度娘找的 这是原文:链接 安装环境:C ...
- 关系型数据库(RDBMS)与 MongoDB 的对应关系
谈一下关系型数据库(RDBMS)与 MongoDB 的对应关系:
- oracle的批量插入sql
insert into persons (id_p, lastname , firstName, city ) values (200,'haha' , 'deng' , 'shenzhen'), ( ...
- bzoj1083: [SCOI2005]繁忙的都市 瓶颈生成树
https://www.lydsy.com/JudgeOnline/problem.php?id=1083 题意:给你一个图,求生成树最大边权最小值 就是求瓶颈生成树(生成树中最大边权最小),最小生成 ...
- torch7 调用caffe model 作为pretrain
torch7 调用caffe model 作为pretrain torch7 caffe preTrain model zoo torch7 通过 loadcaffe 包,可以调用caffe训练得到的 ...
- 各种数据库对应的jar包、驱动类名和URL格式
1.1. 各种数据库对应的jar包 具体如下: 数据库类型 对应的Jar文件 Oracle 8i classes12.zip 或 ojdbc14.jar Sybase jconn2.jar ...