Mengoptimumkan Pencetus MySQL Menggunakan Cap Masa untuk Mengesan Pengubahsuaian Data Sebenar
Cabaran:
MySQL "AFTER UPDATE" mencetuskan kebakaran walaupun tanpa perubahan data sebenar, yang membawa kepada pelaksanaan yang tidak perlu dan kesesakan prestasi.
Penyelesaian:
Menggunakan cap masa menawarkan penyelesaian yang cekap. Jenis data MySQL TIMESTAMP
dikemas kini secara automatik dengan masa semasa pada setiap pengubahsuaian baris. Dengan membandingkan NEW
dan OLD
nilai cap masa dalam pencetus, anda boleh mengenal pasti perubahan data tulen dengan tepat.
Kod Ilustrasi:
Pencetus ini menggunakan cap masa untuk melaksanakan hanya apabila perubahan data sebenar:
<code class="language-sql">CREATE TRIGGER ins_sum AFTER UPDATE ON foo FOR EACH ROW BEGIN IF NEW.ts != OLD.ts THEN INSERT INTO bar (a, b) VALUES(NEW.a, NEW.b); END IF; END;</code>
Mekanisme:
NEW
: Mewakili nilai baharu baris yang dikemas kini.OLD
: Mewakili nilai baris sebelum kemas kini.NEW.ts != OLD.ts
: Perbandingan ini memastikan pencetus diaktifkan hanya apabila cap masa berbeza, menunjukkan perubahan data sebenar.Kebaikan:
Pertimbangan Penting:
TIMESTAMP
kemas kini lajur hanya apabila data berubah. Jika cap masa boleh diubah suai secara bebas, pendekatan ini mungkin tidak boleh dipercayai.Atas ialah kandungan terperinci Bagaimanakah Cap Masa Boleh Mengoptimumkan Pencetus MySQL untuk Mengesan Hanya Perubahan Data Sebenar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!