MySQL 中的表占用空间主要包括数据文件(如 .frm
、.MYD
、.MYI
)和索引文件所占用的磁盘空间。.frm
文件存储表的结构,.MYD
文件存储表的数据,.MYI
文件存储表的索引。
可以使用以下 SQL 命令查看表占用的空间:
SHOW TABLE STATUS LIKE 'table_name';
或者使用 information_schema
数据库:
SELECT
TABLE_NAME,
DATA_LENGTH,
INDEX_LENGTH,
(DATA_LENGTH + INDEX_LENGTH) AS TOTAL_SPACE
FROM
information_schema.TABLES
WHERE
TABLE_SCHEMA = 'database_name' AND TABLE_NAME = 'table_name';
原因:
解决方法:
DELETE
或 TRUNCATE
命令。ALTER TABLE
命令。-- 删除无用数据
DELETE FROM table_name WHERE condition;
-- 删除索引
ALTER TABLE table_name DROP INDEX index_name;
-- 分区表
ALTER TABLE table_name PARTITION BY RANGE (column_name) (
PARTITION p0 VALUES LESS THAN (100),
PARTITION p1 VALUES LESS THAN (200),
PARTITION p2 VALUES LESS THAN MAXVALUE
);
通过以上方法,可以有效地管理和优化 MySQL 表占用的空间。
领取专属 10元无门槛券
手把手带您无忧上云