3.information_schema 统计信息库

1.介绍:

视图

1.安全: 只允许查询,不知道操作的对象是谁。
2.方便: 只需要简单的select语句即可使用。

2.作用:

1.方便我们做数据库资产统计
库/表:
个数
数据量(容量;行数)
每张表的数据字典信息

2.可以获取到server层状态信息
3.获取到InnoDB引擎层的状态信息

3.应用举例:

TABLES :

TABLE_SCHEMA:           表所在的库
TABLE_NAME:             表名
ENGINE:                 表的引擎
TABLE-ROWS:             表的行数
AVG_ROW_LENGTH:         平均行长度(字节)
INDEX_LENGTH:           索引占用长度(字节)
TABLE_COMMENT:          表注释

-- 例子:

-- 1. 简单查询体验TABLES信息
SELECT * FROM TABLES;

-- 2. 所有业务库和表的名字.
SELECT table_schema , table_name
FROM information_schema.tables
WHERE table_schema NOT IN ('sys','information_schema','performance_schema','mysql');
-- 3. 统计每个业务库,表的个数和列表
SELECT table_schema , COUNT(table_name),GROUP_CONCAT(table_name)
FROM information_schema.tables
WHERE table_schema NOT IN ('sys','information_schema','performance_schema','mysql')
GROUP BY table_schema;
-- 4. 统计业务数据库的总数据量
SELECT SUM(table_rows * AVG_ROW_LENGTH+index_length)/1024 AS total_KB
FROM information_schema.tables
WHERE table_schema NOT IN ('sys','information_schema','performance_schema','mysql');
-- 5. 每个业务库分别统计数据量
SELECT table_schema,SUM(table_rows * AVG_ROW_LENGTH+index_length)/1024 AS total_KB
FROM information_schema.tables
WHERE table_schema NOT IN ('sys','information_schema','performance_schema','mysql')
GROUP BY table_schema
ORDER  BY total_KB DESC ;

-- 6. top 3 数据量大的表
SELECT table_schema,table_name,(table_rows * AVG_ROW_LENGTH+index_length)/1024 AS table_kb
FROM information_schema.tables
WHERE table_schema NOT IN ('sys','information_schema','performance_schema','mysql')
ORDER BY  table_kb DESC
LIMIT 3;

-- 7. 查询所有非INNODB的表

SELECT table_schema,table_name ,ENGINE FROM information_schema.tables
WHERE table_schema NOT IN ('sys','information_schema','performance_schema','mysql')
AND ENGINE <> 'innodb';

-- 8. 查询所有非INNODB的表 , 并且提出修改建议
SELECT
table_schema,
table_name ,
ENGINE ,
CONCAT("alter table ",table_schema,".",table_name," engine=innodb;") AS "修改建议"
FROM information_schema.tables
WHERE table_schema NOT IN ('sys','information_schema','performance_schema','mysql')
AND ENGINE <> 'innodb';

-- 9. 所有业务库和表的名字,并且生产备份语句
SELECT
table_schema ,
table_name ,
CONCAT("mysqldump ",table_schema," ",table_name," > /bak/",table_schema,"_",table_name,".sql") AS "备份"
FROM information_schema.tables
WHERE table_schema NOT IN ('sys','information_schema','performance_schema','mysql');

最新文章

  1. Http压测工具wrk使用指南
  2. 国内第一篇详细讲解hadoop2的automatic HA+Federation+Yarn配置的教程
  3. linux 生成KEY的方法与使用
  4. Jquery EasyUI Tree .net实例
  5. 117 FP页面无法查看
  6. iphone/ipod网页开发教程及规则
  7. 【HDOJ】1709 The Balance
  8. UI控件库
  9. .NET的DTO映射工具AutoMapper
  10. CodeForces 610C Harmony Analysis
  11. 2393Cirno的完美算数教室 容斥
  12. RDS和ROS使用小结
  13. Konva入门教程
  14. kafka manager安装配置和使用
  15. docker 在宿主机上根据进程PID查找归属容器ID
  16. Git使用、Git配置、Git提交代码、Git上传
  17. 告诉maven,我真的不需要web.xml
  18. 使用UISearchDisplayController
  19. java 多线程6: 中断机制 优雅的终止java线程
  20. C# 文件夹的常用操作

热门文章

  1. ubuntu18.04 点击启动器实现窗口最小化
  2. Linux中的特殊权限s、t、i、a
  3. HDU4578-Transformation-线段树的加、乘、变、次方操作
  4. 字母加密-C基础
  5. Django框架(十六)—— cookie和session组件
  6. vue input聚焦时,滚动至可视区域
  7. Android消息处理:EventBus、BroadCast和Handler-优缺点比较
  8. 2018-2-13-win10-uwp-魔力鬼畜
  9. Codeforces 346D Robot Control DP spfa 01BFS
  10. CreateFile的内部实现