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 性能相关 ...
随机推荐
- pt-table-checksum校验mysql主从数据一致性
主从数据的一致性校验是个头疼的问题,偶尔被业务投诉主从数据不一致,或者几个从库之间的数据不一致,这会令人沮丧.通常我们仅有一种办法,热备主库,然后替换掉所有的从库.这不仅代价非常大,而且类似治标不治本 ...
- 面试代码基础(一)从strstr说起
对于写程序要注意:要能在面试官的提示下把代码写出来(把思想实现的能力)!还要注意边界检查!递归找到出口! 开场来个简单字符串匹配 int strstr(char* target,char* sourc ...
- SSH密钥登陆免密码方法
原帖地址:http://ask.apelearn.com/question/798 用Putty实现A机器远程登陆B机器,具体实现请看链接:http://www.cnblogs.com/ImJerry ...
- NSMutableString和NSString区别,及相互转换方法
NSString是一个不可变的字符串对象.这不是表示这个对象声明的变量的值不可变,而是表示它初始化以后,你不能改变该变量所分配的内存中的值,但你可以重新分配该变量所处的内存空间.而NSMutableS ...
- 安装 python 数据分析插件 pandas
一上午试验了各种方法,发现利用pycharm是最快的.可以抛弃版本,命令和兼容问题的烦恼.纯粹傻瓜式 方法是 pycharm, 直接在settings里面,搜索pandas,添加即可,他会把所有之前需 ...
- 4.彻底理解synchronized
1. synchronized简介 在学习知识前,我们先来看一个现象: public class SynchronizedDemo implements Runnable { private s ...
- 虚拟机VMware搭建代码环境
安装git yum install git -y 安装nvm curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/ins ...
- windows下使用selenium报错selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH
问题 :执行程序代码报错: WebDriverException:Message:'geckodriver'executable needs to be in Path 或者 selenium.com ...
- KMP算法(改进后的字符串匹配算法)
转载:http://blog.csdn.net/liu88010988/article/details/50789960 kmp算法完成的任务是:给定两个字符串O和f,长度分别为n和m,判断f是否在O ...
- grunt-init 默认模板目录更正
grunt-init是依赖grunt项目管理的脚手架工具,各种优点无须赘述,默认的template路径的作用:可以把自定义或其他模板放置其中,应用的时候直接调用模板名,不用每次寻找路径: 在安装gru ...