gpt4 book ai didi

mysql - 更改默认存储引擎 Amazon RDS MariaDB

转载 作者:行者123 更新时间:2023-11-29 05:59:18 27 4
gpt4 key购买 nike

我有数百个大表,已从我的 MySQL 数据库(使用亚马逊迁移服务)迁移到 RDS MariaDB。所有的存储引擎都从 MyISAM 转到了 InnoDB。这会对性能造成灾难性影响。

简而言之,我希望将默认存储引擎更改为 MyISAM,然后重新迁移所有表。我也愿意接受有关如何执行此操作的任何其他想法(例如在迁移工具中使用某种设置)。我真的不想创建一个脚本来更改它们,因为这意味着我每次导入数据时都需要这样做。

我已经尝试更改参数组 default_storage_engine,但是当我进入我正在运行的实例的参数组时,默认存储引擎显示为只读。 AWS Console Screenshot

我也尝试过创建一个新的参数组,结果也是如此。该值显示为“可修改:false”。

非常感谢任何帮助。我查看了其他答案,但我认为修改 my.cnf 与 RDS 无关。如果是,请告诉我。

最佳答案

显然 RDS 不允许您更改该参数。

您可以将每个表更改为 MyISAM,一次一个:

ALTER TABLE MyTable ENGINE=MyISAM;

您可以获得需要更改的表的列表:

SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE ENGINE='InnoDB';

对于 future 的表格,不要依赖默认引擎。使用在 CREATE TABLE 语句中明确指定的引擎创建表。

不过,我要提醒您:MyISAM 正在被 MySQL 淘汰。它不支持并发写入、行级锁定、事务或原子更改。 InnoDB 一再被证明在性能上优于 MyISAM,除了极少数情况:

  • SELECT COUNT(*) FROM MyTable; 因为 MyISAM 将此统计信息内置到每个表中。不可否认,这是 InnoDB 或任何 MVCC 架构的一大弱点。
  • 表格扫描。但是无论如何你不应该进行表扫描,你应该进行索引查找。针对 InnoDB 的优化查询通常比针对 MyISAM 的表扫描在性能方面要好得多。

我鼓励您找出查询优化并坚持使用 InnoDB。

关于mysql - 更改默认存储引擎 Amazon RDS MariaDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46381942/

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