max_heap_table_size là biến hệ thống (system variable) xác định kích thước tối đa của bảng MEMORY (HEAP). Giá trị mặc định là 16 MB (16.777.216 bytes).
Kiểm tra giá trị hiện tại
mysql> SELECT @@max_heap_table_size; +-----------------------+ | @@max_heap_table_size | +-----------------------+ | 16777216 | +-----------------------+
Chuyển đổi bytes sang MB: 16777216 / (1024*1024) = 16 MB
Thay đổi giá trị
SET @@max_heap_table_size = so_bytes_moi;
Ví dụ đặt thành 32 MB (33.554.432 bytes):
mysql> SET @@max_heap_table_size = 33554432; Query OK, 0 rows affected (0.00 sec) mysql> SELECT @@max_heap_table_size; +-----------------------+ | @@max_heap_table_size | +-----------------------+ | 33554432 | +-----------------------+ mysql> SELECT @@max_heap_table_size / 1048576 AS MB; +---------+ | MB | +---------+ | 32.0000 | +---------+
Lưu ý quan trọng
- Thay đổi chỉ có hiệu lực trong session hiện tại (session variable)
- Để thay đổi vĩnh viễn, sửa file cấu hình
my.cnfhoặcmy.ini:max_heap_table_size = 33554432
- Giá trị này cũng giới hạn kích thước bảng tạm nội bộ (internal temporary tables)
- Nếu tăng quá lớn có thể gây thiếu bộ nhớ