如何获取所有数据库的总大小

时间:2018-04-05 16:08:03

标签: mysql group-by rollup

您好,我试图以GB为单位获取所有数据库的总大小

我从这个命令开始,每个人的工作都很好,但我无法获得所有数据库的总数!!

任何想法如何获得最终所有数据库的总大小。

这是我的命令

mysql> SELECT table_schema AS "Database name", SUM(ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 /1024 ), 2)) AS "Size (GB)" FROM information_schema.TABLES GROUP BY table_schema;

2 个答案:

答案 0 :(得分:0)

您可以使用jetty9_version=9.2.22.v20170606 jetty94_version=9.4.6.v20170531 选项。

   [HttpGet]
    public JsonResult FetchCoIds(string CoName)
    {
        var data = new { Value = "val", Text = CoName+"_val1" };
        return Json(data, JsonRequestBehavior.AllowGet);
    }

在此处阅读:https://dev.mysql.com/doc/refman/5.7/en/group-by-modifiers.html

答案 1 :(得分:0)

我正在使用此查询:

$db->executeSQL("SELECT table_schema, SUM((data_length+index_length)) AS BytesUsed FROM information_schema.tables WHERE table_schema='$DBName'");
$db_size = $db->arrayedResult[0]['BytesUsed'];
echo "calculating DB: $DBName - size: " . $db_size . "\n";

并显示:

/**
 * format size to Kb, Mb, Gb format
 *
 * @param $size
 * @return string
 */
public static function formatSize($size)
{
    $units = explode(' ', 'B KB MB GB TB PB');
    $mod = 1024;
    for ($i = 0; $size >= $mod; $i++)
    {
        $size /= $mod;
    }
    $endIndex = strpos($size, ".") + 3;

    $ret = substr($size, 0, $endIndex) . ' ' . $units[$i];
    return $ret;
}