gpt4 book ai didi

mysql - phpBB SELECT 在新服务器上持续很长时间

转载 作者:行者123 更新时间:2023-11-29 09:46:28 27 4
gpt4 key购买 nike

我正在设置一个新服务器,并希望将现有的 phpBB 安装移至那里。一切都很顺利,除了一个 SELECT 处于 SLOW 日志中并永远占用 CPU 之外。我不是数据库专家,所以我迷失了。

旧服务器 - Win2008 R2、MySQL 5.7.24、php 5.6.39、单 i7 四核 CPU、24GB RAM

新服务器 - Win2016、MySQL 8.0.15、php 7.1.5、双 Xeon CPU、96GB RAM

我尝试打开每个表并检查错误,执行 mysql_upgrade,结果正常。有问题的 SELECT 是:

SELECT ug.user_id, a.forum_id, r.auth_setting, r.auth_option_id, ao.auth_option
FROM phpbb_acl_groups a, phpbb_user_group ug, phpbb_groups g, phpbb_acl_roles_data r, phpbb_acl_options ao
WHERE a.auth_role_id = r.role_id AND r.auth_option_id = ao.auth_option_id
AND a.group_id = ug.group_id
AND g.group_id = ug.group_id
AND ug.user_pending = 0
AND NOT (ug.group_leader = 1 AND g.group_skip_auth = 1)


AND ao.auth_option = 'm_';

在旧服务器上,选择会立即完成。在新服务器上,它持续 25 - 30 秒。查看图片 - 查看“检查的行”。但所有表格看起来都不错...

New server

Old server

旧服务器 my.ini 看起来像这样:

max_connections=151
table_open_cache=2000
tmp_table_size=922M
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=3G
key_buffer_size=8M
read_buffer_size=64K
read_rnd_buffer_size=256K
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=1024M
innodb_log_file_size=128M
innodb_thread_concurrency=17
innodb_autoextend_increment=64
innodb_buffer_pool_instances=8
innodb_concurrency_tickets=5000
innodb_old_blocks_time=1000
innodb_open_files=300
innodb_stats_on_metadata=0
innodb_file_per_table=1
innodb_checksum_algorithm=0
back_log=80
flush_time=0
join_buffer_size=256K
max_allowed_packet=4M
max_connect_errors=100
open_files_limit=4161
sort_buffer_size=256K
table_definition_cache=1400
binlog_row_event_max_size=8K
sync_master_info=10000
sync_relay_log=10000
sync_relay_log_info=10000

新服务器 my.ini 如下所示:

max_connections=151
table_open_cache=2000
tmp_table_size=5G
thread_cache_size=10
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=10G
key_buffer_size=8M
read_buffer_size=64K
read_rnd_buffer_size=256K
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=2048M
innodb_log_file_size=128M
innodb_thread_concurrency=24
innodb_autoextend_increment=64
innodb_buffer_pool_instances=8
innodb_concurrency_tickets=5000
innodb_old_blocks_time=1000
innodb_open_files=300
innodb_stats_on_metadata=0
innodb_file_per_table=1
innodb_checksum_algorithm=0
back_log=80
flush_time=0
join_buffer_size=256K
max_allowed_packet=4M
max_connect_errors=100
open_files_limit=4161
sort_buffer_size=256K
table_definition_cache=1400
binlog_row_event_max_size=8K
sync_master_info=10000
sync_relay_log=10000
sync_relay_log_info=10000

最佳答案

所以,我:

  • 比较新旧数据库之间的每个表数据、列、行、索引。我没有发现任何差异。
  • 在不同的机器上安装了 mysql 8.0.15 并在那里进行了尝试 - 以防万一新服务器上出现问题。

没有运气。

所以作为最后一次尝试,我下载了当前的 mysql 5.7.25 版本,你猜怎么着 - 它可以工作。

那么这有可能是 MySQL 8.x 分支中的一些错误吗?我没有看到任何其他解释...

关于mysql - phpBB SELECT 在新服务器上持续很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55576610/

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