gpt4 book ai didi

mysql - 将 MyISAM 转换为 InnoDB。有利?结果?

转载 作者:可可西里 更新时间:2023-11-01 06:35:53 26 4
gpt4 key购买 nike

我们正在运行一个社交网站,记录每个成员的操作(包括访问其他成员的页面);这涉及对数据库的大量写入。这些操作存储在 MyISAM 表中,由于某些事情开始对 CPU 造成负担,我的第一个想法是 MyISAM 的表锁定导致了 CPU 压力。

  • 只有读取和写入,没有对此表的更新。我认为对于这个表,读写之间的平衡大约是 50/50,因此 InnoDB 会是更好的选择吗?
  • 如果我想将表更改为 InnoDB 并且我们不使用外键约束、事务或全文索引 - 我需要担心什么吗?

最佳答案

尽管在其他线程 (MyISAM versus InnoDB) 中讨论了使用它的任何优点/缺点,但迁移是一个重要的过程。

考虑

  • 如果可能,对所有与数据库对话的组件进行功能测试——不同的引擎具有不同的语义
  • 尽可能多地运行性能测试 - 有些事情可能会有所改善,有些事情可能会更糟。一个众所周知的例子是在大表上的 SELECT COUNT(*)。
  • 检查您的所有代码是否都能妥善处理死锁 - 您可以在不显式使用事务的情况下获得死锁
  • 估计通过转换您将获得多少空间使用量 - 在非生产环境中进行测试。

毫无疑问,您需要在大型软件平台中进行更改;这没关系,但看到你(希望)有很多自动测试覆盖率,变化应该是可以接受的。

PS:如果“某些事情开始对 CPU 造成负担”,那么您应该 a) 在非生产环境中找出是什么,b) 在非生产环境中尝试各种选项来减少它。不要在没有分析清楚问题的情况下,盲目地开始做大事,比如换数据库引擎。

所有性能测试都应在非生产环境中进行,使用类似生产的数据并在生产级硬件上进行。否则很难正确解释结果。

关于mysql - 将 MyISAM 转换为 InnoDB。有利?结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2006053/

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