【发布时间】:2020-04-29 12:41:03
【问题描述】:
我们一直在努力解决运行缓慢(从未完成)的存储过程。我们一直专注于特定的 CREATE TABLE ... SELECT ... from table 与一些连接。
当我们单独运行此查询时,它会在大约 14 秒内始终如一地完成。当它作为存储过程的一部分运行时,即使在几个小时后也不会完成。
我们发现如果我们将存储过程中的所有代码作为普通 SQL 脚本运行,那么它也很慢。在存储过程中,表是从基础数据创建的,并准备由存储过程使用。
我们正在运行 5.7.mysql_aurora.2.07.2 并在 5.7.mysql_aurora.2.07.1 上进行了测试。我怀疑我们需要调整一些数据库设置,但我缺乏 InnoDB 和 Aurora 的经验。
我们从 MyISAM 迁移到 Aurora,现在我们在其中使用 InnoDB,任何有关可能导致此问题的原因的任何指导都将不胜感激。
编辑:
我确实尝试将语句从CREATE TABLE ... SELECT ... from table 更改为CREATE TABLE,然后是INSERT INTO,这没有任何区别。
似乎有效的方法是使用
create table A (PRIMARY KEY (name)) select ... 用于创建的所有表,而不是首先创建表并使用ALTER 语句添加键。
我很困惑为什么这种模式会起作用???
【问题讨论】:
标签: mysql amazon-aurora