Last active
March 8, 2020 13:16
-
-
Save xiangchu0/b711d6efa67aa12a055f03e80c23349d to your computer and use it in GitHub Desktop.
mysql-5.7-tuning-parameters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
intel_idle.max_cstate=0 idle=poll quiet cgroup_enable=memory crashkernel=256M intel_pstate=disable | |
[mysql] | |
default-character-set=utf8mb4 | |
user = root | |
password = 123456 | |
port = 3306 | |
socket = /tmp/mysqld.sock | |
prompt="\u@\h \d>" | |
[mysqld] | |
# basic settings # | |
user = mysql | |
bind-address = 0.0.0.0 | |
socket = /tmp/mysqld.sock | |
character_set_server = utf8mb4 | |
transaction_isolation = READ-COMMITTED | |
explicit_defaults_for_timestamp = 1 | |
max_allowed_packet = 16777216 | |
event_scheduler = 1 | |
default_password_lifetime = 0 | |
autocommit = 1 | |
server-id = 1 | |
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER" | |
# connection # | |
interactive_timeout = 1800 | |
wait_timeout = 1800 | |
lock_wait_timeout = 1800 | |
skip_name_resolve = 1 | |
max_connections = 512 | |
max_connect_errors = 1000000 | |
# table cache performance settings # | |
table_open_cache = 4096 | |
table_definition_cache = 4096 | |
table_open_cache_instances = 128 #最大64 | |
# session memory settings # | |
read_buffer_size = 16M | |
read_rnd_buffer_size = 32M | |
sort_buffer_size = 32M | |
tmp_table_size = 64M | |
join_buffer_size = 128M | |
thread_cache_size = 64 | |
# log settings # | |
log_error = error.log | |
log-bin = mysql-bin | |
slow_query_log = 1 | |
slow_query_log_file = slow.log | |
log_queries_not_using_indexes = 1 | |
log_slow_admin_statements = 1 | |
log_slow_slave_statements = 1 | |
log_throttle_queries_not_using_indexes = 10 | |
expire_logs_days = 30 | |
long_query_time = 2 | |
min_examined_row_limit = 100 | |
binlog-rows-query-log-events = 1 | |
log-bin-trust-function-creators = 1 | |
log-slave-updates = 1 | |
# innodb settings # | |
innodb_page_size = 16384 | |
innodb_buffer_pool_size = 160G | |
innodb_buffer_pool_instances = 16 | |
innodb_buffer_pool_load_at_startup = 1 | |
innodb_buffer_pool_dump_at_shutdown = 1 | |
innodb_lru_scan_depth = 4096 | |
innodb_lock_wait_timeout = 5 | |
innodb_io_capacity = 10000 | |
innodb_io_capacity_max = 20000 | |
innodb_flush_method = O_DIRECT | |
innodb_file_format = Barracuda | |
innodb_file_format_max = Barracuda | |
innodb_undo_logs = 128 | |
innodb_undo_tablespaces = 3 | |
innodb_flush_neighbors = 0 | |
innodb_log_file_size = 17179869184 | |
innodb_log_files_in_group = 2 | |
innodb_log_buffer_size = 16777216 | |
innodb_purge_threads = 4 | |
innodb_large_prefix = 1 | |
innodb_thread_concurrency = 64 | |
innodb_print_all_deadlocks = 1 | |
innodb_strict_mode = 1 | |
innodb_sort_buffer_size = 67108864 | |
innodb_write_io_threads = 16 | |
innodb_read_io_threads = 16 | |
innodb_file_per_table = 1 | |
innodb_stats_persistent_sample_pages = 64 | |
innodb_autoinc_lock_mode = 2 | |
innodb_online_alter_log_max_size=1G | |
innodb_open_files=4096 | |
innodb_flush_log_at_trx_commit=1 | |
# replication settings # | |
master_info_repository = TABLE | |
relay_log_info_repository = TABLE | |
sync_binlog = 1 | |
gtid_mode = on | |
enforce_gtid_consistency = 1 | |
log_slave_updates | |
binlog_format = ROW | |
binlog_rows_query_log_events = 1 | |
relay_log = relay.log | |
relay_log_purge = 1 | |
relay_log_recovery = 1 | |
report-port = 3306 | |
report-host = 10.106.144.11 | |
slave_skip_errors = ddl_exist_errors | |
slave-rows-search-algorithms = 'INDEX_SCAN,HASH_SCAN' | |
# semi sync replication settings # | |
plugin_load = "validate_password.so;rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so" | |
rpl_semi_sync_master_enabled = 1 | |
rpl_semi_sync_master_timeout = 3000 | |
rpl_semi_sync_slave_enabled = 1 | |
# password plugin # | |
validate_password_policy=STRONG | |
validate-password=FORCE_PLUS_PERMANENT | |
[mysqld-5.6] | |
# metalock performance settings | |
metadata_locks_hash_instances=64 | |
[mysqld-5.7] | |
# new innodb settings # | |
loose_innodb_numa_interleave=1 | |
innodb_buffer_pool_dump_pct = 40 | |
innodb_page_cleaners = 16 | |
innodb_undo_log_truncate = 1 | |
innodb_max_undo_log_size = 2G | |
innodb_purge_rseg_truncate_frequency = 128 | |
# new replication settings # | |
slave-parallel-type = LOGICAL_CLOCK | |
slave-parallel-workers = 16 | |
slave_preserve_commit_order=1 | |
slave_transaction_retries=128 | |
# other change settings # | |
binlog_gtid_simple_recovery=1 | |
log_timestamps=system | |
show_compatibility_56=on | |
I assume the MySQL Server as followings. You should tune the variables according to your server. | |
32 CPU core | |
256G Memory | |
SSD storage with 20000 IOPS in 16K page size |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment