书写技术成长之路

MySQL获取数据库表的大小

获取单独的数据库大小

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

获取所有数据库的各个表大小

SELECT
  TABLE_SCHEMA AS `Database`,
  TABLE_NAME AS `Table`,
  ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`
FROM
  information_schema.TABLES
ORDER BY
  (DATA_LENGTH + INDEX_LENGTH)
DESC;

参考 https://chartio.com/resources/tutorials/how-to-get-the-size-of-a-table-in-mysql/