問題の説明
ApsaraDB RDS for MySQLインスタンスで準備済みのステートメントを実行すると、次のエラーメッセージが表示されます。
1615: 準備されたステートメントを再準備する必要があります
原因
次のいずれかの原因でエラーが発生する可能性があります。
原因1:
準備されたステートメントの実行は、PREPAREステートメントが実行されるフェーズとEXECUTEステートメントが実行されるフェーズの2つのフェーズで実行されます。 EXECUTEステートメントは複数回実行できます。前のフェーズの間に、データが変更され、TABLE_SHAREが再作成されます。
原因2:
このエラーは、MySQL 8.0.22で導入されたバグが原因です。 group_concat_max_lenの値が4294967295より大きい場合、このエラーが発生します。 MySQL 8.0.26でバグが修正されました。
解決策
次のいずれかの解決策を実行します。
- 解決策1: RDSインスタンスの [パラメーター] ページで、table_definition_cacheパラメーターの値を変更します。 このパラメーターを
{LEAST(DBInstanceClassMemory/1073741824*512, 8192)}
に設定することを推奨します。 詳細は、「インスタンスパラメーターの変更」をご参照ください。 - 解決策2: RDSインスタンスのマイナーエンジンバージョンを最新バージョンに更新します。 詳細については、「マイナーエンジンバージョンの更新」をご参照ください。