MySQL数据库优化配置文件my.cnf参数优化参考:
[client] default-character-set=utf8 loose-local-infile=1 #load data local infile数据加载配置 [mysqld] ########basic settings######## port = 3306 autocommit = 0 #commit提交 character_set_server=utf8 lower_case_table_names=1 #MySQL忽略大小写启用 event_scheduler=ON #开启任务计划 skip_name_resolve = 1 #禁用dns解析 max_connections = 16384 #MySQL服务器允许的最大连接数16384 max_connect_errors = 1000 #设置错误连接数,阻止过多尝试失败的客户端 datadir = /usr/local/mysql/data transaction_isolation = READ-COMMITTED #设置事务隔离级别,读取提交内容 explicit_defaults_for_timestamp = 1 #timestamp列如果没有显式定义为not null,则支持null属性 join_buffer_size = 134217728 #联合查询操作所能使用的缓冲区大小128M tmp_table_size = 268435456 #设置内存中临时表为256M tmpdir = /tmp max_allowed_packet = 268435456 #接收的数据包256M interactive_timeout = 1800 #服务器关闭交互式连接前等待活动的秒数 wait_timeout = 1800 #等待连接超时时间 read_buffer_size = 16777216 #MySql读入缓冲区大小16M read_rnd_buffer_size = 33554432 #MySql的随机读缓冲区大小32M sort_buffer_size = 33554432 #MySql执行排序使用的缓冲大小32M ########log settings######## log_error = error.log slow_query_log = 1 slow_query_log_file = slow.log long_query_time = 5 #超过5秒的SQL会记录下来 #########print not use index####### log_queries_not_using_indexes = 1 log_slow_admin_statements = 1 log_slow_slave_statements = 1 log_throttle_queries_not_using_indexes = 10 min_examined_row_limit = 100 #查询检查返回少于该参数指定行的SQL不被记录到慢查询日志 ########replication settings######## log-bin=mysql-bin binlog-format=row server_id=1 #配置mysql replaction需要定义,不能和其他节点重复 binlog_annotate_row_events=true #开启记录annotate事件 master_info_repository = TABLE relay_log_info_repository = TABLE log_bin = bin.log sync_binlog = 1 #每个事务提交时候,把事务日志从缓存区写到日志文件中,并且刷新日志文件的数据到磁盘上 relay_log = relay.log relay_log_recovery = 1 binlog_gtid_simple_recovery = 1 slave_skip_errors = ddl_exist_errors #忽略所有类型为ddl_exist_errors的错误 ########innodb settings######## innodb_page_size = 8192 #设置数据页8k innodb_buffer_pool_size = 10G #缓存用户表及索引数据空间10G innodb_buffer_pool_instances = 8 #开启多个内存缓冲池 innodb_buffer_pool_load_at_startup = 1 #在启动时将本地热数据加载到InnoDB缓冲池中 innodb_buffer_pool_dump_at_shutdown = 1 #在关闭时把热数据dump到本地磁盘中 innodb_lru_scan_depth = 2000 #控制LRU最少使用链表尾部遍历的长度 innodb_lock_wait_timeout = 5 锁等待超时时间 innodb_io_capacity = 4000 #刷新的脏页的数量 innodb_io_capacity_max = 8000 #设置会影响InnoDB每秒在后台执行次数 innodb_flush_method = O_DIRECT #InnoDB使用O_DIRECT模式打开数据文件,用fsync()函数去更新日志和数据文件。 innodb_file_format = Barracuda innodb_file_format_max = Barracuda #innodb表空间文件存储压缩格式Barracuda innodb_undo_logs = 128 #控制用到的回滚段的个数 innodb_undo_tablespaces = 3 #设定创建的undo表空间的个数 innodb_flush_neighbors = 1 #innodb的内部逻辑也会把多个page合并成一次IO进行提交刷写性能更高 innodb_log_file_size = 4G #日志文件大小 innodb_log_buffer_size = 16777216 #innodb缓存大小 innodb_purge_threads = 4 #开启清写线程 innodb_large_prefix = 1 #允许列索引最大达到3072 innodb_thread_concurrency = 64 #限制并发线程的数量 innodb_print_all_deadlocks = 1 #把死锁信息打印到错误日志里 innodb_strict_mode = 1 innodb_sort_buffer_size = 67108864 #innodb排序缓存大小 #########################################