我一直在想如何管理MySQL内存的使用,因为默认情况下,它占用350 my的内存,而在我的机器上空闲,我没有内存问题,我只是想知道它是如何做到的。
我找到了关于调整配置文件的多个答案,它们按预期工作,其中一个甚至将内存使用量降低到100 of。
1.-哪些选项对内存使用影响最大?
2.-我在哪里可以了解这些选择对业绩的影响?(文件/书籍/任何东西)
示例配置文件,MySQL只需要100 its(它是一个Docker容器)
[mysqld]
performance_schema = 0
skip-host-cache
skip-name-resolve
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv = NULL
skip-external-locking
max_connections = 100
connect_timeout = 5
wait_timeout = 600
max_allowed_packet = 16M
thread_cache_size = 128
sort_buffer_size = 4M
bulk_insert_buffer_size = 16M
tmp_table_size = 32M
max_heap_table_size = 32M
myisam_recover_options = BACKUP
key_buffer_size = 128M
table_open_cache = 400
myisam_sort_buffer_size = 512M
concurrent_insert = 2
read_buffer_size = 2M
read_rnd_buffer_size = 1M
long_query_time = 10
expire_logs_days = 10
max_binlog_size = 100M
default_storage_engine = InnoDB
innodb_buffer_pool_size = 32M
innodb_log_buffer_size = 8M
innodb_file_per_table = 1
innodb_open_files = 400
innodb_io_capacity = 400
innodb_flush_method = O_DIRECT
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[isamchk]
key_buffer = 16M发布于 2020-02-23 05:36:46
你需要大刀阔斧的修剪。
max_connections = 100 --> 20
max_allowed_packet = 16M --> 8M
thread_cache_size = 128 --> 4
sort_buffer_size = 4M --> 2M
bulk_insert_buffer_size = 16M --> 2M
tmp_table_size = 32M --> 4M
max_heap_table_size = 32M --> same as tmp_table_size
key_buffer_size = 128M --> 10M if not using MyISAM; else 20M
table_open_cache = 400 --> 200
myisam_sort_buffer_size = 512M --> 100M
innodb_log_buffer_size = 8M --> 4M
innodb_open_files = 400 --> 200
innodb_buffer_pool_size = 32M -- Hard to say; this may be too low.并且,如果可能的话,设置一些交换空间,以防这些空间不够低。用交换来换取表演是很糟糕的。
降低将导致经济放缓;这些主要是“缓存”:
*buffer*
*open*
*cache把这些因素降低太多会导致某种形式的错误:
max_connections
*_size如果它是名称*_size,并且是以MB表示的,那么它可能是字节。其他的*_size倾向于“多少”;我不知道每一个有多大(例如,table_open_cache)
我这里没有突出显示的列表中的设置不会影响内存的使用。其他数百种设置对这一讨论可能并不重要。
如果您想要更详细的评论,请按照下面的说明:http://mysql.rjweb.org/doc.php/mysql_analysis#tuning
https://dba.stackexchange.com/questions/259808
复制相似问题