【问题标题】:optimizing my.cnf for SELECT query MariaDB为 SELECT 查询 MariaDB 优化 my.cnf
【发布时间】:2016-12-08 23:06:03
【问题描述】:

在具有 4GB RAM(带有 MariaDB 的 Centos 7.2)的 VPS (ssd) 上,我有一个大表,每天更新几次都没有问题。

我想优化 my.cnf 以使对该表的 SELECT 查询执行得更快。

到目前为止,我在 my.cnf 中有这个:

max_allowed_packet=1024M 
query_cache_size=256M
innodb_buffer_pool_size=3072M

我不得不将 max_allowed_pa​​cket 设置为一个较高的值,因为我在导入提要时一直达到最大值。

缓存开启,我设置 query_cache_size=256M 和 innodb_buffer_pool_size=3072M

这似乎并没有太大的区别(只是快一点)。一次查询大约需要 9 秒,现在需要 8 秒。

任何见解都将不胜感激!

【问题讨论】:

  • 我投票决定将此问题作为题外话结束,因为这个问题可能是错误的树。问题很可能出在索引或缺少索引上。

标签: mysql mariadb my.cnf


【解决方案1】:

max_allowed_packet=1024M -- 这会减少其他内存使用
query_cache_size=256M -- 否;在这个大小是减慢速度。不超过 50M
innodb_buffer_pool_size=3072M -- 由于只有 4GB 内存,第一项占用 1G,所以设置为只有 1G

一般规则:“您无法通过调整来解决性能问题。”但是您可以通过任意提高可调参数损害性能,而不了解它们可能会导致交换。而且这种交换对于 MySQL 的性能来说是可怕的

性能问题需要看查询和表(SHOW CREATE TABLE)。有时它就像添加“复合”索引一样简单。有时,一个简单的修复可以将查询速度提高十倍以上。

告诉我们“大表正在更新”。你完全重新加载它吗? (如果是这样,讨论#73);大规模更新:#49; SELECTs 同时打桌:#61。其他?

(这些数字是我编造的,但我确信这些是本论坛某个地方的答案。如果您找不到它们;让我们看看您的信息;我们可以重新发明轮子。)

【讨论】:

    猜你喜欢
    • 2021-04-06
    • 2018-02-07
    • 2016-07-09
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多