我可以运行这个查询来获得MySQL数据库中所有表的大小:
show table status from myDatabaseName;
我希望有人能帮助我理解结果。我在找尺寸最大的桌子。
我应该看哪一列?
我可以运行这个查询来获得MySQL数据库中所有表的大小:
show table status from myDatabaseName;
我希望有人能帮助我理解结果。我在找尺寸最大的桌子。
我应该看哪一列?
当前回答
如果您正在使用phpmyadmin,那么只需转到表结构
e.g.
Space usage
Data 1.5 MiB
Index 0 B
Total 1.5 Mi
其他回答
SELECT
table_name AS "Table",
round(((data_length + index_length) / 1024 / 1024), 2) as size
FROM information_schema.TABLES
WHERE table_schema = "YOUR_DATABASE_NAME"
ORDER BY size DESC;
这将对大小进行排序(DB大小以MB为单位)。
如果您正在使用phpmyadmin,那么只需转到表结构
e.g.
Space usage
Data 1.5 MiB
Index 0 B
Total 1.5 Mi
这只是一个供以后参考的说明。所有答案都依赖于I_S.TABLES。例如,如果你在表中有blob字段,它不会告诉你正确的大小。LOB页存储在外部页中,因此不计入聚集索引。 事实上有一个注释:
对于NDB表,该语句的输出显示适当的值 AVG_ROW_LENGTH和DATA_LENGTH列,例外 没有考虑到BLOB列。
我发现InnoDB也是如此。
我已经创建了社区Bug相同。
select x.dbname as db_name, x.table_name as table_name, x.bytesize as the_size from
(select
table_schema as dbname,
sum(index_length+data_length) as bytesize,
table_name
from
information_schema.tables
group by table_schema
) x
where
x.bytesize > 999999
order by x.bytesize desc;
SELECT TABLE_NAME AS "Table Name",
table_rows AS "Quant of Rows", ROUND( (
data_length + index_length
) /1024, 2 ) AS "Total Size Kb"
FROM information_schema.TABLES
WHERE information_schema.TABLES.table_schema = 'YOUR SCHEMA NAME/DATABASE NAME HERE'
LIMIT 0 , 30
您可以从“information_schema”-> SCHEMATA表->“SCHEMA_NAME”列中获取模式名称
额外的 你可以得到mysql数据库的大小如下。
SELECT table_schema "DB Name",
Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB"
FROM information_schema.tables
GROUP BY table_schema
ORDER BY `DB Size in MB` DESC;
结果
DB Name | DB Size in MB
mydatabase_wrdp 39.1
information_schema 0.0
你可以在这里得到更多的细节。