You've already forked Epicnabbo-Catalogus-Updated-Daily
1.9 KiB
1.9 KiB
Of course. For a VPS with 16 GB RAM, you can significantly scale up your MySQL configuration to handle high traffic and demanding queries. The primary goal is to maximize the innodb_buffer_pool_size to reduce disk I/O.
Here are the recommended settings for a 16 GB RAM VPS:
[mysqld]
# InnoDB settings
# Set to 50-70% of total RAM.
innodb_buffer_pool_size = 11G
# The number of threads writing data from the buffer pool to the disk.
# A good starting value is 8 for a server with this much RAM.
innodb_io_threads = 8
# Amount of memory for the log buffer.
# A larger value can improve write performance.
innodb_log_buffer_size = 64M
# Query Cache settings
# It's best to keep this disabled since MySQL 5.7+ and deprecated in 8.0.
query_cache_type = 0
query_cache_size = 0
# Connection settings
# Adjust based on your expected traffic.
max_connections = 500
# Other settings
# A temporary table size limit to prevent memory exhaustion.
tmp_table_size = 512M
max_heap_table_size = 512M
Key Changes Explained
innodb_buffer_pool_size: Set to 11 GB. This is the most crucial change. It allocates a large portion of your RAM to the database's data and index cache, which will drastically improve query performance.innodb_io_threads: Increased to 8. With more available RAM and CPU power on a larger server, you can use more threads to write data to the disk, which can help with I/O-intensive workloads.innodb_log_buffer_size: Increased to 64 MB. This helps improve the efficiency of large write transactions by providing a larger buffer for log data.max_connections: Increased to 500. This allows your database to handle a larger number of concurrent users or application connections without queuing them.tmp_table_size/max_heap_table_size: Increased to 512 MB. This provides more memory for temporary tables created by complex queries, reducing the need to write them to disk.