如何针对性能优化InnoDB内存参数?

时间:2016-08-25 07:03:30

标签: mysql mysql-workbench innodb database-administration

我正在使用Mysql server 5.6。我不太了解在MySql文件夹下设置my.ini文件。

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

1 个答案:

答案 0 :(得分:1)

有关设置内容的讨论,请参阅memory。 (这取决于你有多少RAM。)

这些设置需要位于配置文件的[mysqld]秒内。值看起来像是由某些安装脚本生成的;他们可能是合理的。大多数人不需要触摸配置,特别是如果安装脚本执行诸如调整RAM大小之类的事情。

要使my.ini(或my.cnf)值生效,请停止并重新启动服务器。其细节依赖于操作系统。