performance - MySQL 8.0.18:关键效率 0.0%
问题描述
我有一个奇怪的问题。我从 MySQL 5.7.x 迁移到 8.0.x - 最近升级到 8.0.18。在此之前,关键效率通常为 90% 以上,现在为 0.0%。尽管如此,性能似乎非常好(我无法区分之前和之后的区别),所以我给了这个低优先级,现在正在处理它。我对如何解决它有点茫然。
该服务器在主轴磁盘上有 16 个 CPU/16 个内核、64GB RAM、1TB Raid5 SSD + 4TB SAS。几乎所有活动都与存储在 SSD 上的数据有关……主轴磁盘是“旧”数据主要用于老化的地方。大多数活动是触发器和存储过程。系统接收数据,然后通过触发器和例程进行处理,然后通过来自外部系统的 API 调用读取数据。它不支持网站等的 CRM。
InnoDB my.cnf:
innodb_log_file_size = 1G
innodb_buffer_pool_size = 52G
innodb_buffer_pool_instances = 16
#innodb_buffer_pool_chunk_size = xxM
innodb_log_buffer_size = 120M
innodb_file_per_table = 1
innodb_page_size = 16384
innodb_sort_buffer_size = 16M
innodb_open_files = 2400
#innodb_max_dirty_pages_pct = 90 # Default = 90
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT
innodb_checksum_algorithm = crc32
innodb_flush_neighbors = 0
innodb_lock_wait_timeout = 180
解决方案
嗯,这是出乎意料的。问题解决了。
我们使用的 MySQL 5.7 在 MySQL 模式中有 MyISAM 表。特别是在某个时候,之前的 DBA 将一些日志记录表从 CSV 更改为 MyISAM;general_log 和 slow_log。这是因为在这些表上执行了一些管理操作(用于 SysAdmin 的仪表板),而 MyISAM 表在执行此操作时似乎要快一些,因为它们可以被索引。升级到 8.0.18 时,这些表使用这些表的标准存储引擎重新部署;CSV - 这些没有被索引(因此我们仪表板的两个部分在 8.0.18 上比在 5.7 上慢……我一直想知道,现在我知道为什么了)。
因此,当前的 8.0.18 在任何地方都没有 MyISAM。Key_blocks_used、Key_read_requests、Key_reads、Key_write_requests、Key_writes 都永久为 0,因此 Workbench 中显示的“Key Efficiency”也是 0.0%。我会说这是一个错误或工作台中未正确/完全更新的功能。
推荐阅读
- android - 任务“app:mergeDebugJavaResource”执行失败。(FLUTTER) 断电后
- python - AttributeError:“选择”对象没有属性“过滤器”-在 Flask 和 Sqalchemy 中
- visual-studio-code - vscode如何展开项目的所有文件夹?
- ruby-on-rails - Ruby on Rails 教程问题,需要帮助来澄清想法
- ruby-on-rails - 如何以 Rails 方式执行模型动作
- html - 浏览器支持宽度和高度以最小化 CLS
- python - google_new_transError:连接失败。可能原因:超时?
- python - 列表问题:“想要获得一个列表”
- python - Keras:val_loss 和 val_accuracy 没有改变
- cuda - 在与 FFT 卷积之前在信号中间进行零填充?