首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪些操作或实践有助于SQL数据库中CPU和RAM的高使用率?

哪些操作或实践有助于SQL数据库中CPU和RAM的高使用率?
EN

Database Administration用户
提问于 2019-07-22 17:03:40
回答 1查看 177关注 0票数 -2

我很好奇哪些常见的做法或操作会导致SQL数据库的CPU使用率或内存使用率过高,我正在尝试根据当前DB资源的使用情况估计分配给新的MySQL数据库(垂直升级)的资源,以及估计这种使用在将来会增加多少。

例如:“高度复杂的连接和搜索查询可以提高CPU利用率,因为.”

EN

回答 1

Database Administration用户

回答已采纳

发布于 2019-07-22 18:10:59

我已经研究了一千多个“高CPU”(或“高平均负载”)的情况。我建议97%的案件可以由

  • 添加适当的综合索引,或
  • 重新编制查询,例如在函数调用中不隐藏索引列。

至于内存的使用,适当设置innodb_buffer_pool_size是唯一值得改变的地方。也许在只有20%的情况下,调整其他设置将有助于超过一个微不足道的数额。

其他一些对性能“不好”的模式:

  • 实体-属性值(由于大量使用JOINs,标度很差)
  • 用于标识项的UUID(由于随机性而难以扩展;在某些情况下,添加大量RAM是唯一的补救办法)
  • “多到多”映射表的糟糕模式
  • 爆炸-内爆(JOIN,然后是一个表的GROUP BY id )
  • “但我把每一栏都编了索引。”(以及新手说的其他关于索引的事情)
  • 认为PARITIONs自动提供性能(PARTITIONing只有4个用例)
  • 使用OFFSET进行分页(而不是“记住您停止的位置”)

我在http://mysql.rjweb.org/上讨论这些以及更多内容

CPU峰值通常是由于用户的操作不均衡而发生的,但通常可以通过加速所涉及的查询来缓解。或者甚至删除一些查询。--这涉及从更高级别查看数据流。

如果您有一个正在运行的系统将增长,那么我建议在http://mysql.rjweb.org/doc.php/mysql_分析中执行以下两件事:

  • GLOBAL STATUSVARIABLES的分析--这可能会发现一些需要调整的地方。
  • Slowlog --这在查找“最糟糕的”查询和缓解瓶颈方面做得很好。

此外,从这些分析中发现的信息可能会导致了解您需要多长时间来增长系统,以及向哪个方向发展: CPU (不太可能)、I/O、读缩放、写入缩放等等:

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/243477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档