MariaDBBench Xưởng Định Cỡ 50-server.cnf & InnoDB 11.4

Công Bố Liên Kết Đối Tác MariaDBBench: Khi bạn đăng ký hạ tầng qua liên kết được tài trợ (/go/), MariaDBBench có thể nhận hoa hồng giới thiệu từ nhà cung cấp mà không làm thay đổi mức giá của bạn — xem Tuyên Bố Minh Bạch Hoa Hồng MariaDBBench.

GUIDE-08 • TEMP TABLE MEMORY MATH // ĐẶT ĐỒNG BỘ TMP_TABLE_SIZE = MAX_HEAP_TABLE_SIZE (64M–192M) & BỎ SELECT * TRÊN CỘT TEXT

Hướng Dẫn Bảng Tạm MariaDBBench: Đồng Bộ tmp_table_size, max_heap_table_size & Bẫy Cột TEXT/BLOB

MariaDBBench giải thích công thức MIN(tmp_table_size, max_heap_table_size), lý do cột TEXT/BLOB buộc tạo bảng tạm trên đĩa ngay lập tức và giới hạn OOM đa luồng.

Nạp Cấu Hình GUIDE-08 Vào Trình Sinh 50-server.cnf →
Công Thức Giới Hạn Thực
MIN(tmp_table_size, max_heap_table_size)
Engine Bảng Tạm Đĩa MariaDB
Aria Internal Temp Tables
Quy Tắc Cột TEXT / BLOB
Bỏ Qua MEMORY Ghi Thẳng Đĩa
Phạm Vi Cấp Phát RAM
Theo Từng Truy Vấn Đang Chạy

Truy Vấn SQL Chẩn Đoán Trực Tiếp Trên MariaDBBench (tmp_table_size & Bảng Tạm Đĩa)

Chạy truy vấn đọc-chỉ-định dưới đây trên giao diện dòng lệnh mariadb để kiểm tra trạng thái thực tế của máy chủ trước khi sửa tệp 50-server.cnf.

-- Truy vấn MariaDBBench: Tính tỷ lệ phần trăm bảng tạm nội bộ bị đẩy xuống ổ cứng
SELECT
  SUM( IF(VARIABLE_NAME = 'Created_tmp_tables', VARIABLE_VALUE, 0) ) AS total_tmp_tables,
  SUM( IF(VARIABLE_NAME = 'Created_tmp_disk_tables', VARIABLE_VALUE, 0) ) AS disk_tmp_tables,
  ROUND(
    SUM( IF(VARIABLE_NAME = 'Created_tmp_disk_tables', VARIABLE_VALUE, 0) ) * 100.0 /
    GREATEST(1, SUM( IF(VARIABLE_NAME = 'Created_tmp_tables', VARIABLE_VALUE, 0) )), 2
  ) AS disk_spill_pct
FROM information_schema.GLOBAL_STATUS
WHERE VARIABLE_NAME IN ('Created_tmp_tables', 'Created_tmp_disk_tables');

Bảng Tham Chiếu Định Cỡ MariaDBBench Cho tmp_table_size & Bảng Tạm Đĩa

Tổ Hợp Khai Báo Trong 50-server.cnf Trần Bộ Nhớ Thực Tế Hành Vi Theo Tài Liệu Chính Thức MariaDB
tmp_table_size = 128M, max_heap_table_size = 16MChỉ 16 MB (bị chặn bởi số nhỏ hơn)Đẩy mọi bảng tạm GROUP BY > 16 MB xuống tệp đĩa Aria
Đặt cả hai biến lên 2G trên máy đông kết nốiTối đa 2.048 MB mỗi câu truy vấnRủi ro tràn RAM OOM khi hàng chục báo cáo chạy cùng lúc
Đồng bộ 64M–128M + truy vấn con lọc cột ID trước64 MB – 128 MB an toànGiữ phép gom nhóm trong RAM mà không đe dọa tổng bộ nhớ

Quy Tắc Đối Xứng MIN(tmp_table_size, max_heap_table_size) Trong Tài Liệu MariaDB

Theo tài liệu chính thức của MariaDB và MySQL, kích thước tối đa của bảng tạm ngầm định trên RAM luôn bị khóa bởi giá trị nhỏ hơn giữa tmp_table_size và max_heap_table_size. Nếu chỉ tăng một biến mà quên biến còn lại ở mức mặc định 16M, mọi phép GROUP BY vượt 16 MB vẫn tràn xuống ổ đĩa. Do đó trình sinh 50-server.cnf của MariaDBBench luôn gán hai biến này bằng nhau.

Vì Sao Cú Pháp SELECT * Dính Cột TEXT/BLOB Luôn Bỏ Qua Bảng Tạm Trên RAM?

Engine MEMORY dùng cho bảng tạm trên RAM của MariaDB không chứa được các cột kiểu TEXT hoặc BLOB. Bất kỳ câu truy vấn gom nhóm nào gọi SELECT * kéo theo cột nội dung dài đều bị chuyển thẳng sang bảng đĩa Aria ngay từ dòng đầu tiên. Tách câu lệnh gom nhóm theo khóa chính số nguyên trước rồi mới JOIN lấy cột văn bản sẽ giải quyết triệt để hiện tượng này.

Giữ Ngưỡng Bảng Tạm Vừa Phải Để Bảo Vệ Máy Chủ Khi Tăng max_connections

Vì bộ nhớ bảng tạm được cấp riêng cho từng câu lệnh đang thực thi, chúng tôi khuyến nghị khóa ngưỡng đồng bộ trong khoảng 64M–192M và đặt thư mục tmpdir trên ổ cứng NVMe tốc độ cao.

Tùy Chọn Hạ Tầng NVMe Tương Thích Cho tmp_table_size & Bảng Tạm Đĩa (Giá Công Khai 2026-11-12)

Thông số quyền truy cập root 50-server.cnf và mức giá khởi điểm cập nhật ngày 2026-11-12; giá khuyến mãi và gia hạn có thể thay đổi theo chính sách từng hãng.

ROOT MY.CNF • AMD EPYC DDR5 KVM

Hostinger KVM NVMe VPS (Toàn Quyền Root MariaDB 11.4 LTS) — MariaDBBench Spec Match

Local PCIe 4.0 NVMe (Uncapped IOPS, Zero AWS I/O Billing) • 100% Root Access (/etc/mysql/mariadb.conf.d/99-tuned.cnf). Giá niêm yết (2026-11-12) từ $5.99/tháng (https://www.hostinger.com/vps-hosting).

Xem Gói Hostinger KVM MariaDB 11.4 Từ $5.99/tháng (GUIDE-08) →
LEDGER PICK #1 • MANAGED MARIADB + LITESPEED NVME

ChemiCloud Managed MariaDB + LiteSpeed Enterprise NVMe — MariaDBBench Spec Match

Enterprise Gen4 NVMe RAID-10 (Zero I/O Throttling Burst) • Managed Pre-Tuned Pool + Redis Memcached Offload. Giá niêm yết (2026-11-12) từ $2.95/tháng (https://chemicloud.com/wordpress-hosting).

Xem Gói ChemiCloud MariaDB NVMe Từ $2.95/tháng (GUIDE-08) →
DEDICATED CORES • HIGH-QPS VDS

UltaHost Dedicated VDS (Chuyên Trị InnoDB Lớn & Cụm Galera) — MariaDBBench Spec Match

Enterprise U.3 NVMe RAID-10 (Sustained Write fsync) • 100% Dedicated Kernel sysctl + Custom 99-tuned.cnf. Giá niêm yết (2026-11-12) từ $37.50/tháng (https://ultahost.com/vds-hosting).

Xem Gói UltaHost VDS MariaDB RAM Lớn Từ $37.50/tháng (GUIDE-08) →

Các Chuyên Đề Cấu Hình MariaDB 11.4 Liên Quan Khác Trên MariaDBBench (GUIDE-08)

Giải Đáp Kỹ Thuật MariaDBBench Về tmp_table_size & Bảng Tạm Đĩa

Tại sao MariaDBBench không đặt tmp_table_size = 1G dù máy chủ có 32 GB RAM?

Vì một câu lệnh SQL phức tạp có thể mở nhiều bảng tạm cùng lúc; nếu 30 người dùng chạy báo cáo đồng thời ở mức 1G mỗi luồng, hệ thống sẽ đòi thêm 30 GB RAM ngoài vùng Buffer Pool.

MySQL 8.4 xử lý bảng tạm chứa cột VARCHAR/BLOB khác gì so với MariaDB 11.4?

MySQL 8.4 dùng Temptable engine có trần chung toàn cục temptable_max_ram (mặc định 1G), trong khi MariaDB 11.4 kết hợp MEMORY engine với vùng đệm aria_pagecache_buffer_size.