首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL -配置文件中的哪些选项对内存使用有影响?

MySQL -配置文件中的哪些选项对内存使用有影响?
EN

Database Administration用户
提问于 2020-02-16 20:46:24
回答 1查看 104关注 0票数 -1

我一直在想如何管理MySQL内存的使用,因为默认情况下,它占用350 my的内存,而在我的机器上空闲,我没有内存问题,我只是想知道它是如何做到的。

我找到了关于调整配置文件的多个答案,它们按预期工作,其中一个甚至将内存使用量降低到100 of。

问题

1.-哪些选项对内存使用影响最大?

2.-我在哪里可以了解这些选择对业绩的影响?(文件/书籍/任何东西)

示例配置文件,MySQL只需要100 its(它是一个Docker容器)

代码语言:javascript
复制
[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
EN

回答 1

Database Administration用户

发布于 2020-02-23 05:36:46

你需要大刀阔斧的修剪。

代码语言:javascript
复制
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.

并且,如果可能的话,设置一些交换空间,以防这些空间不够低。用交换来换取表演是很糟糕的。

降低将导致经济放缓;这些主要是“缓存”:

代码语言:javascript
复制
*buffer*
*open*
*cache

把这些因素降低太多会导致某种形式的错误:

代码语言:javascript
复制
max_connections
*_size

如果它是名称*_size,并且是以MB表示的,那么它可能是字节。其他的*_size倾向于“多少”;我不知道每一个有多大(例如,table_open_cache)

我这里没有突出显示的列表中的设置不会影响内存的使用。其他数百种设置对这一讨论可能并不重要。

如果您想要更详细的评论,请按照下面的说明:http://mysql.rjweb.org/doc.php/mysql_analysis#tuning

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/259808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档