gpt4 book ai didi

mysql - 改用MyISAM Engine会不会有助于提高读取操作的速度?

转载 作者:行者123 更新时间:2023-11-29 01:59:54 26 4
gpt4 key购买 nike

我目前有一些使用 InnoDB Engine 的表。 10-20 个连接不断地向这些表中插入数据。我在 AWS 上使用 MySQL RDS 实例。指标显示大约 300 写入 IOPS(计数/秒)。但是,INSERT 操作会锁定表,如果有人想执行类似 SELECT COUNT(*) FROM table; 的查询,在 MySQL 缓存结果之前,第一次可能需要几个小时。

我不是 DBA,我对 DB 的了解非常有限。所以问题是,如果我切换到 MyISAM 引擎,它是否有助于改进 READ 操作的时间?

最佳答案

没有 WHERE 的 SELECT COUNT(*) 对 InnoDB 来说是错误的查询,因为它不像 MyISAM 那样缓存行数。因此,如果您对该特定查询有疑问,则必须将计数缓存在某处 - 例如在统计表中。

去掉这种特定类型的查询后,您可以讨论 InnoDB 与 MyISAM 的读取性能。通常写入不会阻止 InnoDB 中的读取 - 为此使用 MVCC。然而,InnoDB 性能在很大程度上取决于您为缓冲池设置了多少 RAM。

InnoDB 和 MyISAM 在存储数据的方式上有很大不同。您始终可以针对其中之一进行优化,了解差异可以帮助您设计应用程序。一般来说,你可以在 InnoDB 表中获得与 MyISAM 一样好的读取性能 - 你只需使用不带 where 子句的计数,并且你始终应该为 where 子句提供合适的索引,因为 InnoDB 表扫描将比 MyISAM 慢。

关于mysql - 改用MyISAM Engine会不会有助于提高读取操作的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17633362/

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