Memadam Baris dalam Jadual SQL dengan Cekap, Mengekalkan Hanya N Teratas
Pertimbangkan senario di mana anda perlu membersihkan jadual pangkalan data semua tetapi baris atas n, berdasarkan kriteria tertentu. Tugas ini boleh dicapai dalam SQL menggunakan pelbagai pendekatan, dan di sini kami meneroka penyelesaian yang berkesan:
Pilihan 1: Menggunakan Penyata PADAM dan PILIH TOP
Pendekatan ini memanfaatkan pernyataan DELETE untuk mengalih keluar baris dan pernyataan SELECT TOP untuk mengenal pasti n baris atas. Sintaksnya adalah seperti berikut:
DELETE FROM Table WHERE ID NOT IN (SELECT TOP 10 ID FROM Table)
Walau bagaimanapun, seperti yang betul Chris nyatakan, kaedah ini boleh dikenakan penalti prestasi disebabkan pelaksanaan pertanyaan SELECT TOP untuk setiap baris yang akan dipadamkan.
Pilihan Alternatif: Menggunakan Jadual Sementara untuk Pengoptimuman
Untuk mengurangkan isu prestasi, pertimbangkan pendekatan dioptimumkan berikut:
SELECT TOP 10 ID INTO #Top10 DELETE FROM Table WHERE ID NOT IN (SELECT ID FROM #Top10) DROP TABLE #Top10
Kaedah ini melibatkan mencipta jadual sementara (#Top10) untuk menyimpan n ID teratas. Pernyataan DELETE kemudian menggunakan jadual sementara ini untuk mengalih keluar baris yang tinggal dengan cekap. Akhirnya, jadual sementara digugurkan untuk mengosongkan sumber sistem.
Pendekatan alternatif ini meningkatkan prestasi dengan ketara dengan menghapuskan keperluan untuk melaksanakan pertanyaan SELECT TOP untuk setiap pemadaman baris, menghasilkan masa pelaksanaan yang lebih cepat untuk jadual besar.
Atas ialah kandungan terperinci Bagaimana dengan Cekap Memadam Semua Tetapi Baris N Teratas dalam Jadual SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!