[mysqld] # ==== Charset / Collation ==== character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci skip-character-set-client-handshake # ==== InnoDB Core ==== innodb_file_per_table = 1 innodb_buffer_pool_size = 4G # ปรับตามโหลดจริงภายหลังได้ innodb_flush_method = O_DIRECT # ลด double buffering บน ext4 innodb_flush_log_at_trx_commit = 1 # 1 ปลอดภัยสุด; ถ้ารับความเสี่ยงได้ ใช้ 2 เพื่อเร็วขึ้น innodb_log_file_size = 1G # เปลี่ยนขนาด redo log (ต้อง restart) # ==== Connections / Memory ==== max_connections = 200 thread_cache_size = 100 table_open_cache = 4096 # ==== SQL Mode & Limits ==== sql_mode = STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION max_allowed_packet = 128M # ==== Temps ==== tmp_table_size = 256M max_heap_table_size = 256M # ==== Timezone ==== default-time-zone = '+07:00' # ==== Networking ==== skip-name-resolve = 1 # ==== Logging (แนะนำช่วงแรก) ==== slow_query_log = 1 slow_query_log_file = /var/lib/mysql/slow.log long_query_time = 1 log_slow_admin_statements = 1 log_queries_not_using_indexes = 0 # เปิดเป็น 1 ชั่วคราวได้ แต่จะ noisy # ==== Binary Log (ถ้าไม่ใช้รีพลิเคชัน ปิดไว้) ==== # log_bin = OFF # บังคับใช้ Linux AIO แบบ libaio (ไม่พยายาม io_uring) innodb_linux_aio = aio