仅使用Innodb(5gb数据库)的8gb RAM专用mysql服务器的最佳Mysql缓存设置

Modified on: Mon, 11 Nov 2019 13:20:02 +0800

在设置mysql的性能方面,我是一个非常大的菜鸟。说实话,我并不担心从mysql中挤出最后一点性能的微调,但我知道最重要的事情是提供一些最好的结果是正确设置缓存/缓冲区。

我试图通过仅使用innodb作为存储引擎来保持简单。我确实有一个专用的mysql服务器。它有8GB的ram,我应该如何分配它以最大化性能?我希望能够将整个数据库安装到内存中以获得最佳性能。该数据库大约5GB。这可能吗?

我应该为查询缓存分配多少内存? innodb缓冲池多少钱?其余的计算机(即非mysql相关进程)多少钱?等

由于我没有使用MyISAM,我真的不需要在密钥缓存中放入大量内存吗?

最佳答案

如果不了解数据库本身,这很难。您应该注意一些工具;

关于将整个数据库存储在内存中;在磁盘上执行写入之前,对数据库进行更改的任何查询都将保持打开状态。唯一可以避免磁盘成为瓶颈的是具有写缓存的磁盘控制器。

我将从默认值开始进行以下更改:

key_buffer_size = 128M
thread_stack = 128K
thread_cache_size = 8
table_cache = 8192
max_heap_table_size = 256M
query_cache_limit = 4M
query_cache_size = 512M

innodb_buffer_pool_size = 4G 

# This is crucial to avoid checkpointing all the time:
innodb_log_file_size = 512M

# If you have control on who consumes the DB, and you don't use hostnames when you've set up permissions - this can help as well.
skip_name_resolve

然后我会看到事情的进展,并根据(除其他事项)上述工具的输出尝试不同的事情。我还要确保使用监控工具绘制趋势图,例如MuninCacti,看看我实际处理的是哪种工作量。就个人而言,我对Munin提供的MySQL插件有很好的经验。

作者:Community,Kvisle

相关问答

添加新评论