Mysql之INFORMATION_SCHEMA解析1

本文介绍了MySQL中INFORMATION_SCHEMA库的InnoDB相关表,包括INNODB_SYS_TABLES等,并展示了如何通过这些表查询索引占用的空间大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

INFORMATION_SCHEMA库是Mysql提供的一个系统库,保存了数据库的原数据,方便用户监控与管理Msyql。

现在单说与INNODB相关的库:INNODB_SYS_TABLES,INNODB_SYS_COLUMNS,INNODB_SYS_INDEXS,INNODB_SYS_TABLESPACES,

INNODB_SYS_FIELDS,INNODB_SYS_DATAFILES,INNODB_SYS_TABLESTATS,INNODB_SYS_FOREIGN,INNODB_SYS_FOREIGN_COLS.

其中主要表之间的关系可用下图说明:

这7张表通过 Table_ID,INDEX_ID,SPACE彼此关联起来,以实现对数据的检索与监控。

如 利用上述关系,查询表索引占空间大小:

SELECT a.NAME, a.FILE_FORMAT, a.ROW_FORMAT,
 @page_size :=
  IF(a.ROW_FORMAT='Compressed',
   b.ZIP_PAGE_SIZE, b.PAGE_SIZE)
   AS page_size,
  ROUND((@page_size * c.CLUST_INDEX_SIZE)
   /(1024*1024)) AS pk_mb,
  ROUND((@page_size * c.OTHER_INDEX_SIZE)
   /(1024*1024)) AS secidx_mb
FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES a
INNER JOIN INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES b on a.NAME = b.NAME
INNER JOIN INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS c on b.NAME = c.NAME 
WHERE a.NAME LIKE 'employees/%'
ORDER BY a.NAME DESC;

 

转载于:https://www.cnblogs.com/itdev/p/5958655.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值