Rumah > pangkalan data > tutorial mysql > Mengapa Penyata Disediakan MySQL Saya Perlu Penyediaan Semula?

Mengapa Penyata Disediakan MySQL Saya Perlu Penyediaan Semula?

Susan Sarandon
Lepaskan: 2024-11-26 17:03:11
asal
680 orang telah melayarinya

Why Does My MySQL Prepared Statement Need Re-preparation?

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:

  1. Log masuk ke pelayan MySQL menggunakan alat seperti phpMyAdmin atau baris arahan MySQL.
  2. Jalankan arahan berikut untuk meningkatkan nilai "table_definition_cache":
SET GLOBAL table_definition_cache = <new_value>;
Salin selepas log masuk
  1. Ganti dengan nilai yang lebih besar, seperti 1024 atau 2048.
  2. Mulakan semula pelayan MySQL untuk menggunakan perubahan.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan