mysql中表的大小

Posted

技术标签:

【中文标题】mysql中表的大小【英文标题】:Size of a table in mysql 【发布时间】:2021-01-05 04:25:35 【问题描述】:

我有一张桌子:

create table a(a1 int, a2 char(10),a3 float);

我可以手动计算为该表分配的字节数 a。但是,如何通过一些查询在 mysql 中找到它的大小???

【问题讨论】:

我手动计算了分配给这个表 a 的字节数。真的吗? 是的,它是 4+4+10。 18 字节 您是否在查找表 a 占用的总空间? chartio.com/resources/tutorials/… 是的,它是 4+4+10。 18 字节 首先,这是错误的。您没有考虑很多字节 - 至少可以为空字节和内部行号字节。其次,行的大小与分配给表的字节数非常接近。第三,索引也需要空间。等等…… 【参考方案1】:

如果您正在寻找表 a 的物理表大小

SELECT
  TABLE_NAME AS `Table`,
  ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`
FROM
  information_schema.TABLES
WHERE
    TABLE_SCHEMA = '<schema>'
  AND
    TABLE_NAME = 'a'
ORDER BY
  (DATA_LENGTH + INDEX_LENGTH)
DESC;

【讨论】:

SELECT a AS `Table`, ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)` FROM information_schema.TABLES WHERE TABLE_SCHEMA = "&lt;schema&gt;" AND TABLE_NAME = "a" ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC; ERROR 1054 (42S22): Unknown column 'a' in 'field list' 请问这个错误的原因。 哥们,我也有这个疑问。我检查了你的编辑。它显示empty set。该怎么办???有什么帮助吗?? 这没有意义。注释 --TABLE_SCHEMA 部分并将 TABLE_NAME 部分从相等运算符更改为类似运算符,以便您可以进行更广泛的搜索ç

以上是关于mysql中表的大小的主要内容,如果未能解决你的问题,请参考以下文章

查询以确定数据库中表的大小? (mysql)

mysql数据库表名区分大小写

linux下mysql表名大小写问题

如何查看oracle 数据库中表的大小

HSQL DB 中表名的最大大小是多少?

如何查看mysql中表的锁定情况