ตัวอย่าง my.cnf ที่ “ปลอดภัย + เหมาะกับงาน web/app”
สมมติ Server:
- Ubuntu 22.04
- RAM 8 GB
- MySQL / MariaDB 10.x–11.x
- งาน Web + C# / PHP
[mysqld]
# ===============================
# BASIC
# ===============================
default-storage-engine = InnoDB
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# ===============================
# MEMORY & BUFFER
# ===============================
innodb_buffer_pool_size = 5G
innodb_buffer_pool_instances = 4
innodb_log_buffer_size = 64M
innodb_log_file_size = 1G
# ===============================
# IO PERFORMANCE
# ===============================
innodb_flush_method = O_DIRECT
innodb_flush_log_at_trx_commit = 2
sync_binlog = 0
# ===============================
# CONNECTION
# ===============================
max_connections = 300
thread_cache_size = 100
table_open_cache = 4000
# ===============================
# TEMP & SORT
# ===============================
tmp_table_size = 256M
max_heap_table_size = 256M
sort_buffer_size = 4M
join_buffer_size = 4M
# ===============================
# QUERY CACHE (เฉพาะ MySQL < 8)
# ===============================
# query_cache_type = 0
# query_cache_size = 0
# ===============================
# LOG (สำคัญมาก)
# ===============================
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
🔹 ถ้า RAM 16GB → เพิ่ม innodb_buffer_pool_size เป็น 10–12GB ได้
| ค่า | ผล |
|---|---|
innodb_buffer_pool_size | index อยู่ใน RAM มากขึ้น |
innodb_buffer_pool_instances | ลด contention |
sort_buffer_size | เร็วขึ้นตอน ORDER BY |
join_buffer_size | JOIN แบบไม่มี index ดีขึ้นเล็กน้อย |