Rumah >pangkalan data >tutorial mysql >Mengapa Penyata Disediakan MySQL Saya Perlu Penyediaan Semula?
MySQL Prepared Statement Memerlukan Penyediaan Semula: Menyelesaikan masalah "Prepared statement need to be re-prepared" Ralat
Apabila menghadapi "Prepared statement perlu disediakan semula" ralat dalam MySQL, ia menunjukkan ketidakkonsistenan antara versi pelayan dan klien bagi definisi jadual. Biasanya, isu ini timbul selepas memindahkan kod yang melibatkan MySQL Stored Procedures ke pelayan pengehosan.
Punca Ralat:
Ralat berlaku kerana MySQL mengekalkan cache jadual metadata, yang digunakan untuk mengoptimumkan prestasi dengan mengurangkan keperluan untuk mendapatkan semula maklumat lajur untuk setiap pertanyaan. Walau bagaimanapun, jika struktur jadual berubah antara versi pada mesin tempatan dan pelayan pengehosan, metadata yang dicache menjadi lapuk dan pernyataan itu tidak lagi dapat dilaksanakan dengan jayanya.
Potensi Penyelesaian:
Seperti yang dicadangkan oleh pepijat MySQL #42041, meningkatkan nilai pembolehubah "table_definition_cache" boleh menyelesaikan isu tersebut. Pembolehubah ini menentukan bilangan jadual yang MySQL akan cache. Dengan meningkatkan saiz cache, anda boleh mengurangkan kemungkinan percanggahan antara definisi jadual cache dan sebenar.
Arahan:
SET GLOBAL table_definition_cache = <new_value>;
Rujukan:
Untuk maklumat lanjut tentang caching pernyataan dalam MySQL, rujuk kepada dokumentasi MySQL rasmi: https://dev.mysql.com/doc/refman/8.0/en/statement-cache.html
Atas ialah kandungan terperinci Mengapa Penyata Disediakan MySQL Saya Perlu Penyediaan Semula?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!