2016-11-08 36 views
0

最近我将VPS从1GB更新到了4GB内存。我希望查询(MYSQL/InnoDB)运行速度更快,内存更多,但不幸的是情况并非如此。当服务器有更多的内存时,mysql会自动占用更多的内存,还是必须更改my.cnf中的某些设置?如果是这样,我应该做出什么改变?Mysql(InnoDB)配置设置以获得更好的性能?

+1

我认为你问的是错误的问题。你主要关注提高性能是分析查询。 \t性能问题应该包括'EXPLAIN ANALYZE'和一些关于表格大小,索引,当前时间表现,期望时间等的信息。'Slow'是一个相对术语,我们需要一个真实值来比较。 \t \t [** MySQL **](http://dba.stackexchange.com/questions/15371/how-do-i-get-the-execution-plan-for-a-view) –

+0

是的,我我也在努力优化查询课程。我想优化一切,设置,查询,索引等。 – Roger

+0

你使用什么样的mysql引擎为你的表?给我们更多关于数据库的信息:) – krasipenkov

回答

0

MySQL不会自动利用安装的更多内存。

在你的情况(假设您正在使用InnoDB),你可以做至少这些改善MySQL性能:

  • 增加innodb_buffer_pool_size(此选项默认值为128MB )。这定义了多少内存专用于mysql innodb来缓存其数据表和idexes。这意味着如果你可以分配更多的内存,mysql会缓存更多的数据,从而加快查询速度(因为mysql会查找内存,而不是执行数据查找的I/O操作)。 当然你应该分配合理数量的内存(不是整个4G :))可能是不多于2G。您应该尝试在服务器上测试它以获得更准确的结果。 (阅读更多信息,在更改此选项之前https://dev.mysql.com/doc/refman/5.7/en/innodb-buffer-pool-resize.html
  • 增加innodb_buffer_pool_instances。对于你来说可能是1个或2个实例绰绰有余。 (你可以在这里阅读更多:https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_buffer_pool_instances

但是在开始编辑my.ini之前,请对您的情况做出计算。考虑你的MySQL服务器负载,查询速度慢等更准确的选项设置my.ini

相关问题