use*_*637 40 mysql sql database
网站"如何计算MySQL数据库大小"给出了两个查询:
确定所有数据库的大小
SELECT table_schema "Data Base Name", SUM( data_length + index_length) / 1024 / 1024
"Data Base Size in MB" FROM information_schema.TABLES GROUP BY table_schema ;
Run Code Online (Sandbox Code Playgroud)
确定数据库中所有表的大小
SELECT TABLE_NAME, table_rows, data_length, index_length,
round(((data_length + index_length) / 1024 / 1024),2) "Size in MB"
FROM information_schema.TABLES WHERE table_schema = "schema_name";
Run Code Online (Sandbox Code Playgroud)
第一个查询正常工作,但第二个查询不生成结果集.它只显示没有任何行的字段的名称.如何修改第二个查询以正确显示数据库中表格大小的大小.
elr*_*bis 23
这是一个有用的线程.OP的第二个配方上的这种轻微变化仅返回表(没有视图),并按表大小排序返回的数据集---从最大到最小:
MySQL:
SELECT
TABLE_NAME, table_rows, data_length, index_length,
round(((data_length + index_length) / 1024 / 1024),2) 'Size in MB'
FROM information_schema.TABLES
WHERE table_schema = 'yourSchemaName' and TABLE_TYPE='BASE TABLE'
ORDER BY data_length DESC;
Run Code Online (Sandbox Code Playgroud)
PostGRES:今天我需要在PostGRES中做同样的事情,并从这个答案中借用一些帮助(以及关闭浏览器选项卡后丢失的另一个),这就是我最终的结果.在这里添加它,以防它对其他人有用.
SELECT
t.tbl table_name,
ct.reltuples row_count,
pg_total_relation_size(t.tbl) size,
pg_size_pretty(pg_total_relation_size(t.tbl)) pretty_size
FROM (
SELECT
table_name tbl
FROM information_schema.tables
WHERE
table_schema = 'public'
AND table_type = 'BASE TABLE'
) t
join (
SELECT
relname, reltuples
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE
nspname NOT IN ('pg_catalog', 'information_schema')
AND relkind='r'
) ct
on t.tbl = ct.relname
order by size desc ;
Run Code Online (Sandbox Code Playgroud)
小智 11
我认为这更好.. http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html
show table status from database;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64333 次 |
| 最近记录: |