Mengalih keluar Lewah: Menghapuskan Baris Pendua daripada Pangkalan Data SQLite
Dalam bidang pengurusan pangkalan data SQLite3, mengekalkan integriti dan kecekapan data adalah penting. Ini selalunya melibatkan menangani isu seperti baris pendua, yang boleh membawa kepada hasil yang tidak tepat dan keperluan storan yang melimpah.
Pertimbangkan senario di mana anda mempunyai jadual besar yang dihiasi dengan 36 juta baris, setiap satu mempunyai dua lajur: "cincang" dan "d." Setelah pemeriksaan lebih dekat, anda dapati kehadiran baris pendua yang malang, di mana kedua-dua "cincang" dan "d" memegang nilai yang sama. Walaupun baris yang berkongsi nilai "d" yang sama tidak semestinya menunjukkan pertindihan, sebaliknya adalah benar untuk nilai "cincang" yang sepadan.
Untuk menangani lebihan data ini, anda mencari pendekatan yang paling sesuai untuk membersihkan baris pendua ini. Walau bagaimanapun, ketiadaan lajur kunci utama menambah lapisan kerumitan pada tugasan.
Menyelidiki Penyelesaian
Untuk membezakan antara baris dengan berkesan, pertimbangkan untuk memanfaatkan yang unik lajur rowid, pengecam khas yang diberikan kepada setiap baris dalam pangkalan data SQLite. Matlamat kami adalah untuk mengekalkan baris dengan rowid terendah bagi setiap gabungan unik "cincang" dan "d."
Untuk mencapai ini, gunakan pertanyaan SQL berikut:
delete from YourTable where rowid not in ( select min(rowid) from YourTable group by hash, d )
Ini arahan menyasarkan baris dengan nilai rowid yang tidak sepadan dengan rowid minimum yang dikaitkan dengan mana-mana gabungan khusus "cincang" dan "d." Dengan menghapuskan entri berlebihan ini, anda membersihkan jadual pendua anda sambil mengekalkan rowid terendah untuk setiap pasangan data unik.
Kesimpulan Menggugurkan Duplikat
Melalui penggunaan yang bijak lajur rowid, anda mendapat kuasa untuk membuang baris pendua dengan cekap daripada jadual SQLite3 anda. Ini bukan sahaja melindungi ketepatan data anda, tetapi ia juga menyelaraskan keperluan storan, membuka jalan untuk prestasi optimum dan integriti data.
Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Baris Pendua dengan Cekap dari Jadual SQLite Tanpa Kunci Utama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!