information_schema应用

information_schema.tables 基础应用

tables的结构

mysql> use information_schema;

mysql> desc tables;

TABLE_SCHEMA    # 表所在的库

TABLE_NAME      # 表名

ENGINE          # 表的存储引擎

TABLE_ROWS      # 表的数据行(有可能不准)

AVG_ROW_LENGTH  # 平均行长度

DATA_LENGTH    # 数据的存储大小(有可能不准确)

INDEX_LENGTH    # 索引的存储大小

DATA_FREE      # 碎片的数量

CREATE_TIME    # 创建时间

UPDATE_TIME    # 更新时间

TABLE_COMMENT  # 表注释

使用tables视图

--- 1. 统计每个库的表个数和表名

select table_schema,count(table_name),group_concat(table_name)

from information_schema.tables

group by table_schema;

--- 2. 资产统计:统计全库数据量

SELECT SUM(table_rows*AVG_ROW_LENGTH+index_length)/1024/1024  AS total_mb

FROM information_schema.tables;

--- 3. 统计每个业务库的数据量,表个数,表名列表

SELECT table_schema,

COUNT(table_name),

GROUP_CONCAT(table_name),

SUM(table_rows*AVG_ROW_LENGTH+index_length)/1024/1024  AS total_mb

FROM information_schema.tables

WHERE table_schema NOT IN ('sys','information_schema','performance_schema','mysql')

GROUP BY table_schema;

--- 4. 查询业务库中,非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';

查询业务库中,非InnoDB的表批量替换为InnoDB

修改配置文件

vim /etc/my.cnf

#添加配置并重启

secure-file-priv=/tmp

查看所有非innodb表,除系统库

SELECT CONCAT("ALTER TABLE ",table_schema,".",table_name," ENGINE=INNODB;")

FROM information_schema.tables

WHERE table_schema NOT IN ('sys','information_schema','performance_schema','mysql')

AND ENGINE!='INNODB' INTO OUTFILE '/tmp/alter.sql';

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.A simple master-to-slave replication is currently being...
    Kevin关大大阅读 6,419评论 0 3
  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,183评论 0 19
  • 本文摘自https://www.cnblogs.com/goodtest2018/p/9167089.html #...
    炜哲1120阅读 887评论 0 0
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 10,013评论 0 13
  • 1. distinct 去重复 select sum(单价*数量) from (select 牌子,单价,数量 f...
    张鑫泽_2109阅读 225评论 0 0

友情链接更多精彩内容