Skip to content

Commit

Permalink
Update my.cnf
Browse files Browse the repository at this point in the history
  • Loading branch information
sepehr-mohseni authored Nov 1, 2024
1 parent 2127eaa commit 97c54fa
Showing 1 changed file with 42 additions and 42 deletions.
84 changes: 42 additions & 42 deletions my.cnf
Original file line number Diff line number Diff line change
Expand Up @@ -2,81 +2,81 @@
# ------------------------------------------
# GENERAL SETTINGS
# ------------------------------------------
innodb_buffer_pool_size = 8G # بهتره 60-70 درصد از RAM رو بهش بدی، واسه سیستم‌های پرترافیک خیلی خوبه
innodb_buffer_pool_instances = 8 # به ازای هر 1GB یه instance درست کن، اگه buffer pool از 1GB بیشتره، این عددو ببر بالا
innodb_log_file_size = 2G # این لاگ تراکنش‌ها رو نگه می‌داره، واسه حجم کارای سنگین 2G خوبه
innodb_log_buffer_size = 256M # بافر لاگ تراکنش‌ها، با این مقدار تراکنش‌های نوشتنی رو راحت‌تر می‌کنه
innodb_flush_log_at_trx_commit = 1 # این مقدار رو بذار 1 تا تضمین کنه همه تراکنش‌ها امن هستن، اما اگه کارایی بیشتر می‌خوای و نگران از دست رفتن داده‌ها نیستی می‌تونی بذاری 2
innodb_buffer_pool_size = 8G # It's better to allocate 60-70% of RAM, especially beneficial for high-traffic systems
innodb_buffer_pool_instances = 8 # Create one instance per 1GB; if the buffer pool is larger than 1GB, increase this number
innodb_log_file_size = 2G # Holds transaction logs; 2G is good for heavy workloads
innodb_log_buffer_size = 256M # Log buffer for transactions, making writable transactions smoother
innodb_flush_log_at_trx_commit = 1 # Set to 1 to ensure all transactions are safe, but if more performance is needed and data loss isn’t a concern, set to 2

# ------------------------------------------
# PERFORMANCE TUNING
# ------------------------------------------
max_connections = 500 # تعداد کانکشن‌های همزمان، بسته به نیازت می‌تونی اینو بیشتر یا کمتر کنی
thread_cache_size = 100 # سایز کش نخ‌ها برای مدیریت کانکشن‌های موقتی، هر چی بالاتر بهتره توی بار سنگین
table_open_cache = 4000 # تعداد جداولی که همزمان باز نگه می‌داره، هر چی دیتابیس بزرگتر، اینو ببر بالا
tmp_table_size = 512M # سایز جداول موقتی رو زیاد کن تا کمتر به دیسک مراجعه کنه
max_heap_table_size = 512M # مشابه tmp_table_size برای جداول حافظه‌ای که به سرعت کمک می‌کنه
max_connections = 500 # Number of simultaneous connections, adjust based on need
thread_cache_size = 100 # Thread cache size for managing temporary connections, the higher, the better under heavy load
table_open_cache = 4000 # Number of tables kept open simultaneously, increase if the database is large
tmp_table_size = 512M # Increase temporary table size to reduce disk access
max_heap_table_size = 512M # Similar to tmp_table_size for memory tables to enhance speed

# ------------------------------------------
# CACHE SETTINGS
# ------------------------------------------
query_cache_type = 0 # کش کوئری رو غیرفعال کن چون توی بار سنگین معمولاً ضرر داره
query_cache_size = 0 # سایز کش کوئری صفره تا اصلاً کش نکنه
query_cache_type = 0 # Disable query cache as it usually degrades performance under heavy load
query_cache_size = 0 # Set query cache size to zero to avoid caching

# ------------------------------------------
# INNODB SETTINGS
# ------------------------------------------
innodb_flush_method = O_DIRECT # واسه جلوگیری از کش شدن دوباره داده‌ها توی سیستم‌عامل، مخصوصاً واسه SSDها خیلی خوبه
innodb_file_per_table = 1 # هر جدول توی یه فایل جداگانه ذخیره می‌شه که مدیریت دیسک رو راحت‌تر می‌کنه
innodb_read_io_threads = 16 # نخ‌های ورودی/خروجی برای خوندن رو بسته به دیسکت زیاد کن
innodb_write_io_threads = 16 # نخ‌های ورودی/خروجی برای نوشتن
innodb_thread_concurrency = 0 # بذار InnoDB خودش همزمانی نخ‌ها رو مدیریت کنه
innodb_io_capacity = 2000 # ظرفیت IOPS دیسک، بسته به دیسک و سخت‌افزارت این عددو تنظیم کن
innodb_io_capacity_max = 4000 # مقدار ماکسیمم IOPS برای سرعت بیشتر
innodb_flush_method = O_DIRECT # Prevents double caching in the OS, especially good for SSDs
innodb_file_per_table = 1 # Stores each table in a separate file, making disk management easier
innodb_read_io_threads = 16 # Input/Output threads for reading, increase based on disk setup
innodb_write_io_threads = 16 # Input/Output threads for writing
innodb_thread_concurrency = 0 # Let InnoDB manage thread concurrency
innodb_io_capacity = 2000 # Disk IOPS capacity, adjust based on your disk and hardware
innodb_io_capacity_max = 4000 # Maximum IOPS for higher speed

# ------------------------------------------
# LOGGING & MONITORING
# ------------------------------------------
slow_query_log = 1 # لاگ کوئری‌های کند رو فعال کن که بتونی شناسایی و بهینه‌سازی کنی
slow_query_log_file = /var/log/mysql/slow.log # محل ذخیره لاگ کوئری‌های کند
long_query_time = 1 # کوئری‌هایی که بیش از 1 ثانیه طول می‌کشن لاگ می‌شن
log_queries_not_using_indexes = 1 # کوئری‌هایی که از ایندکس استفاده نمی‌کنن رو لاگ کن تا ببینی کجاها نیاز به بهینه‌سازی داری
log_error = /var/log/mysql/error.log # محل ذخیره خطاهای MySQL
log_warnings = 2 # سطح هشدارها رو زیاد کن تا راحت‌تر مشکلات رو پیدا کنی
general_log = 0 # لاگ عمومی رو خاموش کن که منابع سیستمت رو زیاد مصرف نکنه
general_log_file = /var/log/mysql/general.log # محل ذخیره لاگ عمومی در صورت فعال بودن
slow_query_log = 1 # Enable slow query logging to identify and optimize slow queries
slow_query_log_file = /var/log/mysql/slow.log # Location for storing slow query logs
long_query_time = 1 # Queries taking longer than 1 second will be logged
log_queries_not_using_indexes = 1 # Log queries not using indexes to see where optimization is needed
log_error = /var/log/mysql/error.log # Location for storing MySQL errors
log_warnings = 2 # Increase warning level to easily identify issues
general_log = 0 # Disable general log to reduce system resource usage
general_log_file = /var/log/mysql/general.log # Location for general log if enabled

# ------------------------------------------
# TIMEOUT SETTINGS
# ------------------------------------------
wait_timeout = 600 # زمان انتظار برای کانکشن‌های غیرفعال، بعد این زمان قطع می‌شه
interactive_timeout = 600 # مشابه wait_timeout برای کانکشن‌های تعاملی
net_read_timeout = 30 # زمان انتظار برای خوندن داده‌ها از کانکشن
net_write_timeout = 30 # زمان انتظار برای نوشتن داده‌ها به کانکشن
lock_wait_timeout = 300 # زمان انتظار واسه قفل شدن قبل از اینکه قطع بشه
wait_timeout = 600 # Timeout for inactive connections; they will be closed after this time
interactive_timeout = 600 # Similar to wait_timeout for interactive connections
net_read_timeout = 30 # Timeout for reading data from a connection
net_write_timeout = 30 # Timeout for writing data to a connection
lock_wait_timeout = 300 # Wait time for locking before timing out

# ------------------------------------------
# CHARACTER SET
# ------------------------------------------
character-set-server = utf8mb4 # UTF-8 رو برای پشتیبانی از کاراکترهای خاص (مثل اموجی‌ها) فعال کن
collation-server = utf8mb4_unicode_ci # این collation رو بذار که مقایسه درست انجام شه
character-set-server = utf8mb4 # Enable UTF-8 for support of special characters (like emojis)
collation-server = utf8mb4_unicode_ci # Use this collation for accurate comparison

# ------------------------------------------
# CONNECTION SETTINGS
# ------------------------------------------
max_connect_errors = 100000 # تعداد خطاهای مجاز قبل از بلاک شدن کانکشن، مقدار بالاتر کمک می‌کنه که کانکشن‌ها بی‌دلیل بلاک نشن
max_connect_errors = 100000 # Allowed connection errors before blocking; higher value prevents unnecessary blocking

# ------------------------------------------
# BUFFER SETTINGS
# ------------------------------------------
key_buffer_size = 256M # برای جداول MyISAM، اگه از InnoDB استفاده می‌کنی، نیاز نیست بالا باشه
sort_buffer_size = 4M # بافر مرتب‌سازی برای کوئری‌های ORDER BY
read_buffer_size = 4M # بافر خوندن برای اسکن جداول
read_rnd_buffer_size = 8M # بافر خوندن تصادفی برای اسکن‌های رندوم
join_buffer_size = 8M # بافر برای انجام JOIN های پیچیده
key_buffer_size = 256M # For MyISAM tables; if using InnoDB, it doesn’t need to be high
sort_buffer_size = 4M # Sort buffer for ORDER BY queries
read_buffer_size = 4M # Read buffer for table scans
read_rnd_buffer_size = 8M # Random read buffer for random scans
join_buffer_size = 8M # Buffer for complex JOIN operations

# ------------------------------------------
# OTHER SETTINGS
# ------------------------------------------
table_definition_cache = 2000 # تعداد تعریف جدول‌هایی که MySQL تو کش نگه می‌داره
open_files_limit = 65535 # تعداد فایل‌های باز که سیستم‌عامل می‌تونه مدیریت کنه
table_definition_cache = 2000 # Number of table definitions MySQL keeps in cache
open_files_limit = 65535 # Number of open files the OS can handle

0 comments on commit 97c54fa

Please sign in to comment.