【问题标题】:my.cnf optimization according to the configurationmy.cnf 根据配置优化
【发布时间】:2018-10-13 06:14:07
【问题描述】:

我正在尝试 MySQL 的许多问题,内存使用率高,尤其是 CPU 使用率高。

我有一个具有以下配置的专用服务器:

8 CPU Intel(R) Xeon(R) CPU E3-1240 v6 @ 3.70GHz
16GB DDR3
SO Linux with cPanel/WHM + MySQL

下面是my.cnf文件:

[mysqld]
max_connections=1000
wait_timeout=1000
interactive_timeout=1000
long_query_time=50
slow_query_log = 0
#slow_query_log_file = /var/log/mysql/slow-query.log

default-storage-engine=MyISAM
log-error=/var/lib/mysql/dc.leilaoweb.com.err
max_allowed_packet=268435456
local-infile=0
event_scheduler = on
tmp_table_size=300M
max_heap_table_size=128M
open_files_limit=65000
performance-schema=1

innodb_file_per_table=1
innodb_log_file_size=512M
innodb_buffer_pool_size=8G
key_buffer_size=512M
innodb_buffer_pool_instances=8

# config cache
query_cache_limit=8M
query_cache_size=256M
query_cache_type=1
table_open_cache=6000
table_cache=5000
thread_cache_size=96

#bind-address=127.0.0.1
#skip-networking
#performance_schema=ON

skip-name-resolve

如何改进此设置以加快查询速度而不增加服务器负载?

【问题讨论】:

  • 开启slow_log并设置long_query_time = 1

标签: mysql sql optimization query-optimization


【解决方案1】:

这是一个请求查询优化帮助的有趣问题,其中没有提到具体的查询。

以下是有关配置选项的一些提示:

default-storage-engine=MyISAM

将默认存储引擎更改为 InnoDB,并确保您现有的所有表都是 InnoDB。不要使用 MyISAM。

query_cache_size=256M
query_cache_type=1

将查询缓存大小和类型设置为 0。查询缓存在这种罕见的情况下很有用,它已被弃用,并在 MySQL 8.0 中被删除。最好根据具体情况在应用程序代码中缓存查询结果。

innodb_buffer_pool_size=8G

如果您的数据量超过 8G,请考虑增加缓冲池的大小。驻留在 RAM 中的数据和索引越多,性能就越好。但是,一旦您的数据和索引 100% 缓存在缓冲池中,添加 RAM 就没有更多好处了。

当然不要过度分配缓冲池,以免导致服务器开始交换。这会降低性能(否则,如果您没有交换,Linux 的 OOM 杀手将终止 mysqld)。

key_buffer_size=512M

如果您不使用 MyISAM,则无需为密钥缓冲区分配额外的内存。

可能还有其他可以带来好处的调整参数,但由于您没有提及您的查询或服务器活动,因此无法猜测它们会是什么。

您最好专注于索引和查询设计。

一般来说,优化自然会以牺牲其他查询为代价来改进某些查询。因此,只有在知道需要针对哪些查询进行优化后,才能制定优化策略。

【讨论】:

  • 如果“query_cache_type”可以提高查询速度,为什么建议禁用它?
  • 查询缓存存在可伸缩性问题。每个查询,读取或写入,都需要锁定查询缓存缓冲区。因此,如果您有许多并发查询,这会使它们都相互排队。单独的查询可能会更快,但总体而言,这是对并行执行的限制。
  • 好的。你觉得注释 #config 缓存下面的所有行很有趣吗?
  • 您尚未描述您的查询负载。这些选项可能是正确的,或者它们可能过大,或者它们可能过小。我不知道。
  • @Wendler - 只有 3 个与 query_cache 相关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-05
  • 2020-04-29
  • 1970-01-01
  • 2012-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多