如何优化 InnoDB 内存参数以提高性能?

How to optimize InnoDB memory parameters for performance?

我正在使用 Mysql 服务器 5.6。我不太了解 MySql 文件夹下的 my.ini 文件中的设置。

在我的 my.ini 文件中,内存池大小设置为 679M。我们正在为 mysql 使用 InnoDB 引擎。我可以更改内存池大小吗?如果是,我必须提供多少内存才能获得更好的性能?下面我指定了我的 my.ini 文件设置。

Innodb 引擎需要哪些设置?

如果用于 mysql 的引擎是 innodb,请在 my.ini 文件中提及不需要的设置。

我的 my.ini 文件:

default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

log-output=FILE    
general_log_file="INDIAN-SERVER.log"

slow-query-log=1    
slow_query_log_file="INDIAN-SERVER-slow.log"

long_query_time=10    
log-error="INDIAN-SERVER.err"
server-id=1

max_connections=151    
query_cache_size=0

table_open_cache=2000    
tmp_table_size=107M

thread_cache_size=10    
myisam_max_sort_file_size=100G    
myisam_sort_buffer_size=204M

key_buffer_size=8M    
read_buffer_size=64K    
read_rnd_buffer_size=256K

sort_buffer_size=256K    
innodb_additional_mem_pool_size=15M    
innodb_flush_log_at_trx_commit=1

innodb_log_buffer_size=8M    
innodb_buffer_pool_size=679M    
innodb_log_file_size=48M

innodb_thread_concurrency=9    
innodb_autoextend_increment=64    
innodb_buffer_pool_instances=8

innodb_concurrency_tickets=5000    
innodb_old_blocks_time=1000    
innodb_open_files=300

innodb_stats_on_metadata=0    
innodb_file_per_table=1    
innodb_checksum_algorithm=0

back_log=80    
flush_time=0

join_buffer_size=256K    
max_allowed_packet=4M    
max_connect_errors=100

open_files_limit=4161    
query_cache_type=0    
sort_buffer_size=256K

table_definition_cache=1400    
binlog_row_event_max_size=8K    
sync_master_info=10000

sync_relay_log=10000    
sync_relay_log_info=10000

有关将其设置为什么的讨论,请参阅 memory。 (这取决于您有多少可用内存。)

这些设置需要在配置文件的 [mysqld] 部分。该值看起来是由某些安装脚本生成的;他们可能是合理的。大多数人不需要接触配置,特别是如果安装脚本执行诸如调整 RAM 大小之类的操作。

要使 my.ini(或 my.cnf)值生效,请停止并重新启动服务器。详细信息取决于 OS。