問題現象
在RDS MySQL執行個體中使用Prepared statement提交SQL時報錯:
1615: Prepared statement needs to be re-prepared可能原因
該報錯可能由以下兩種原因引入:
原因一:
Prepared statement的執行過程分2個階段:先執行一次prepare,然後再執行execute(可以多次執行)。在執行prepare和execute的間隙,TABLE_SHARE發生了重建(資料被換出換入)。
原因二:
MySQL 8.0.22引入一個bug,在group_concat_max_len超過4294967295時,會報該錯誤,在MySQL 8.0.26修複了該bug。
解決方案
根據可能原因對應以下兩種解決方案: