Kiểm tra dung lượng ổ cứng bảng trong MySQL
Sử dụng information_schema.tables để xem thông tin lưu trữ.
Cú pháp
select * from information_schema.tables where table_name='ten_bang_cua_ban';
Ví dụ minh họa
mysql> create table DemoTable1600 (
StudentId int,
StudentFirstName varchar(20)
);
Query OK, 0 rows affected (0.51 sec)
mysql> insert into DemoTable1600 values(100,'Bob'); mysql> insert into DemoTable1600 values(101,'David'); mysql> insert into DemoTable1600 values(102,'Carol');
Truy vấn thông tin dung lượng
mysql> select * from information_schema.tables where table_name='DemoTable1600';
Kết quả quan trọng
+---------------+--------------+---------------+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+---------------+ | TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME | TABLE_TYPE | ENGINE | VERSION | ROW_FORMAT | TABLE_ROWS | AVG_ROW_LENGTH | DATA_LENGTH | MAX_DATA_LENGTH | INDEX_LENGTH | DATA_FREE | AUTO_INCREMENT | CREATE_TIME | UPDATE_TIME | CHECK_TIME | TABLE_COLLATION | CHECKSUM | CREATE_OPTIONS | TABLE_COMMENT | +---------------+--------------+---------------+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+---------------+ | def | web | demotable1600 | BASE TABLE | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 0 | NULL | 2019-10-19 14:34:46 | NULL | NULL | utf8_unicode_ci | NULL | | | +---------------+--------------+---------------+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+---------------+
Các cột quan trọng:
- DATA_LENGTH: Dung lượng dữ liệu thực tế (bytes) - ở đây 16384 bytes (16KB)
- INDEX_LENGTH: Dung lượng chỉ mục
- TABLE_ROWS: Số hàng ước tính
- AVG_ROW_LENGTH: Kích thước trung bình mỗi hàng
Lưu ý: MySQL không cung cấp dung lượng chính xác cho từng hàng hoặc cột riêng lẻ. Để ước lượng cột, có thể dùng CHAR_LENGTH() hoặc LENGTH() trên các cột văn bản.