如何获取mysql数据库的大小? 假设目标数据库名为“v3”。


当前回答

或者,您可以直接跳转到数据目录并检查v3的组合大小。myd, v3。Myi和v3。FRM文件(用于myisam)或v3。Idb & v3.frm(用于innodb)。

其他回答

进入“mysql data”目录,执行命令du -h——max-depth=1 | grep databasename

可以使用下面的MySQL命令来确定

SELECT table_schema AS "Database", SUM(data_length + index_length) / 1024 / 1024 AS "Size (MB)" FROM information_schema.TABLES GROUP BY table_schema

结果

Database    Size (MB)
db1         11.75678253
db2         9.53125000
test        50.78547382

以GB为单位获取结果

SELECT table_schema AS "Database", SUM(data_length + index_length) / 1024 / 1024 / 1024 AS "Size (GB)" FROM information_schema.TABLES GROUP BY table_schema

运行这个查询,你可能会得到你想要的:

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; 

这个查询来自mysql论坛,那里有更全面的说明可用。

或者,您可以直接跳转到数据目录并检查v3的组合大小。myd, v3。Myi和v3。FRM文件(用于myisam)或v3。Idb & v3.frm(用于innodb)。

另外:如果有人想获取单个表的大小,请使用以下代码:

SELECT
  TABLE_NAME AS `Table Name`,
  ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size ( in MB)`
FROM
  information_schema.TABLES
WHERE
    TABLE_SCHEMA = "your_db_name"
  AND
    TABLE_NAME = "your_single_table_name"
ORDER BY
  (DATA_LENGTH + INDEX_LENGTH)
DESC;

注意:它不会显示使用ROUND()方法的分数。

希望这能对我们中的许多人有所帮助。