我的服务器有问题,而不是托管 5 个 Wordpress 和 1 个 staging,包括 Woocommerce 和一个具有巨大数据库的 Bbpress。服务器有 120Go Ram 和 500Mo 交换集。
我的 TTFB 大约 3 秒...
有些 SQL 查询大约需要 2 秒才能得到结果。我用 varchar(191) 和表结构 varachar(250) 解决了一个关于索引的问题,但我并没有从中得到太多
我有一些带有巨大索引的表,也许这是需要修复的另一点。
我认为我的问题主要是由于 MySQL 服务器和 SQL 请求延迟造成的。
我已经做了一些优化,使用了多级缓存(redis缓存/网站缓存/DNS缓存)
但在讨论其他技术点之前,我想确保从 MySQL 中获得最大的收益。
这是my.cnf
文件
[mysql]
#performance_schema = on
#max_allowed_packet=4196M
max_connections = 200
[client-server]
# Import all .cnf files from configuration directory
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/
[mysqld]
query_cache_size=64M
join_buffer_size = 8M
#bind-address = ::
sql_mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
local-infile=0
#max_allowed_packet=4196M
net_buffer_length=16K
wait_timeout=300
interactive_timeout=300
####### Control slow query ######
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
log_queries_not_using_indexes = 1
####### CACHE - Management - 15/09/23 ######
tmp_table_size = 4096M
max_heap_table_size = 4096M
sort_buffer_size = 2M
thread_cache_size = 16
#temptable_max_mmap = 4G
#temptable_max_ram = 4G
innodb_buffer_pool_size=48G
innodb_log_file_size=6G
innodb_buffer_pool_instances = 48
performance_schema=ON
table_definition_cache=1500
skip-name-resolve=ON
query_cache_size=8G
#query_cache=0
[client]
#wait_timeout=31536000
#max_allowed_packet=4196M
[mysqldump]
max_allowed_packet=4196M
我想知道更改这些值是否可以帮助我解决问题
tmp_table_size=256M
max_heap_table_size=256M
max_connections=500
thread_cache_size=50
innodb_log_file_size=512M
innodb_buffer_pool_size=100G
wait_timeout=300
interactive_timeout=300
net_buffer_length=64K
max_allowed_packet=256M