gpt4 book ai didi

mysql - my.cnf 根据配置优化

转载 作者:行者123 更新时间:2023-11-30 21:44:17 25 4
gpt4 key购买 nike

我正在尝试 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

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

最佳答案

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

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

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 killer 将终止 mysqld)。

key_buffer_size=512M

如果不使用 MyISAM,则不需要为 key 缓冲区分配额外的内存。

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

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

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

关于mysql - my.cnf 根据配置优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50146439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com