首頁 > 資料庫 > mysql教程 > 為什麼我的 MySQL 預準備語句需要重新準備?

為什麼我的 MySQL 預準備語句需要重新準備?

Susan Sarandon
發布: 2024-11-26 17:03:11
原創
680 人瀏覽過

Why Does My MySQL Prepared Statement Need Re-preparation?

MySQL 準備好的語句需要重新準備:排除「Prepared statements need to be re-preparation」錯誤

遇到「Prepared statements時」 MySQL 中出現「需要重新準備」錯誤,表示表格的伺服器版本和客戶端版本不一致定義。通常,將涉及 MySQL 預存程序的程式碼遷移到託管伺服器後會出現此問題。

錯誤原因:

發生錯誤是因為 MySQL 維護表的快取元數據,用於透過減少為每個查詢檢索列資訊的需要來最佳化效能。但是,如果本機電腦和託管伺服器上的版本之間的表結構發生變化,則快取的元資料就會過時,並且該語句將無法再成功執行。

潛在解決方案:

根據 MySQL bug #42041 的建議,增加「table_definition_cache」變數的值可以解決這個問題。此變數指定 MySQL 將快取的表的數量。透過增加快取大小,您可以減少快取的表定義與實際表定義之間出現差異的可能性。

說明:

  1. 登入 MySQL 伺服器使用 phpMyAdmin 或 MySQL 命令列等工具。
  2. 執行下列指令以增加「table_definition_cache」值:
SET GLOBAL table_definition_cache = <new_value>;
登入後複製
  1. 取代 使用較大的值,例如 1024 或 2048。
  2. 重新啟動 MySQL 伺服器以套用變更。

參考:

對於更多關於MySQL中語句緩存的信息,請參考MySQL官方文檔: https://dev.mysql.com/ doc/refman/8.0/en/statement-cache.html

以上是為什麼我的 MySQL 預準備語句需要重新準備?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板