如何为ubuntu配置mysql配置(ram:4gb cpu:2vcpu ssd磁盘:80gb)

cu6pst1q  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(398)

我正在努力提高mysql的性能。所以我增加了更多的记忆。但在某些方面仍然很慢。im最左边的连接和更新。
我的数据库有40gb的数据。
我当前的mysql配置是:

key_buffer              = 1024M
max_connections         = 3000
query_cache_size        = 256M
query_cache_limit       = 512M
thread_stack            = 32M 
innodb_buffer_pool_size =  512M
innodb_lock_wait_timeout= 150

table_cache = 2048
max_allowed_packet = 16M
max_heap_table_size = 64M
binlog_cache_size = 1M
sort_buffer_size = 8M
join_buffer_size = 8M
thread_cache_size = 8
thread_concurrency = 8
thread_stack = 192K
query_cache_size = 128M
query_cache_type = 1
query_cache_limit = 2M
tmp_table_size = 64M
key_buffer_size = 64M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 2G

问题是。这是最好的配置吗?
我的发球是:数字海洋/ubuntu16.04
ram:4gb cpu:2vcpu ssd磁盘:80gb

o3imoua4

o3imoua41#

根据原始问题中发布的有限信息,为您的my.cnf-ini[mysqld]部分提供建议,

thread_cache_size=50  # from 8 and monitor threads_created
thread_concurrency=16  # from 8 and monitor response time

# LEAD the following lines to allow DEFAULTS to work for you

# key_buffer=1024M  # lead with # to ignore, you have only 4G RAM

# max_connections=3000  # lead with # for default of 151, until more needed

# sort_buffer_size=8M

# read_buffer_size=2M

# read_rnd_buffer_size=8M

# join_buffer_size=8M

# thread_stack=32M

花两分钟www.mysqlcalculator.com 查看上述值如何不必要地增加每个连接的ram占用空间。默认值通常非常适合您。

eivgtgni

eivgtgni2#

根据我个人的经验,最好的方法是分析一些最慢的查询,并检查它们为什么慢。有时使用的“where”(查询条件)没有任何索引,有时添加/更新值后需要更新的索引太多。
请注意,每个字段都应该基于您正在运行的内容。一个很假的例子。允许的最大数据包数=16m
如果没有批处理查询或不使用blob,可以将其缩小。但是,如果你存储大的斑点,你需要这个足够大,以适应更大的附件,你将存储。

相关问题