Rumah > pangkalan data > tutorial mysql > Bagaimana dengan Cekap Memadam Semua Tetapi Baris N Teratas dalam Jadual SQL?

Bagaimana dengan Cekap Memadam Semua Tetapi Baris N Teratas dalam Jadual SQL?

Linda Hamilton
Lepaskan: 2024-12-14 22:12:13
asal
646 orang telah melayarinya

How to Efficiently Delete All But the Top N Rows in a SQL Table?

Memadamkan Semua kecuali Atas n Baris dalam Jadual SQL

Selalunya, kita menghadapi senario di mana kita perlu mengekalkan hanya bilangan tertentu atas baris daripada jadual pangkalan data sambil memadam yang lain. Terdapat cara yang cekap untuk mencapai ini menggunakan SQL.

Penyelesaian:

Salah satu kaedah paling berkesan untuk memadam semua kecuali baris teratas daripada jadual ialah memanfaatkan subquery. Pertanyaan berikut menunjukkan cara:

DELETE FROM Table WHERE ID NOT IN (SELECT TOP 10 ID FROM Table)
Salin selepas log masuk

Pertanyaan ini mengenal pasti ID bagi n baris atas berdasarkan susunan menurun lajur ID menggunakan kata kunci TOP. Ia kemudian mengecualikan baris ini daripada pemadaman dengan membandingkan ID dengan hasil subkueri.

Pertimbangan Prestasi:

Adalah penting untuk mengambil perhatian potensi prestasi yang dicecah dengan menggunakan pendekatan ini. Chris telah menyerlahkan bahawa pertanyaan 10 TOP akan dilaksanakan untuk setiap baris yang dipadamkan, yang boleh menjadi tidak cekap jika terdapat bilangan baris yang banyak.

Untuk operasi sekali, ini mungkin tidak menimbulkan isu yang ketara. Walau bagaimanapun, untuk pelaksanaan yang kerap, terdapat pengoptimuman alternatif untuk dipertimbangkan.

Ingat, pendekatan dan pengoptimuman khusus mungkin berbeza-beza bergantung pada sistem pengurusan pangkalan data dan ciri data asas.

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!

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