Mengurus Entri "Senarai" dalam Jadual SQL: Pertanyaan lwn. Data Dinormalkan
Apabila bekerja dengan jadual SQL, adalah perkara biasa untuk menyimpan data dalam sama ada satu baris dengan entri "senarai" atau baris berasingan untuk setiap entri. Soalan ini mengkaji pendekatan mana yang lebih cekap dari segi masa pertanyaan untuk kes penggunaan tertentu.
Pendekatan Semasa dengan Entri "Senarai"
Penyoal mempunyai SQLite sedia ada jadual dengan baris yang menyerupai:
value, "a,b,c,d,e,f,g,h,i,j", value3, value4
di mana pertanyaan mencari gandingan "nilai" dan "%b%" menggunakan operator LIKE.
Cadangan Pendekatan dengan Data Ternormal
Untuk meningkatkan kecekapan pertanyaan, poster mencadangkan untuk mencipta jadual baharu di mana setiap baris mewakili pilih atur:
value, a, value3, value4 ... value, j, value3, value4
Pertanyaan kemudian akan menggunakan operator "=" untuk mencari "nilai" dan "b."
Faedah Normalisasi
Jawapan kepada soalan ini amat mengesyorkan menggunakan struktur jadual ternormal. Ini kerana pertanyaan LIKE '%something%' tidak boleh menggunakan indeks, menyebabkan masa carian lebih perlahan. Selain itu, penggunaan lajur "senarai" dalam RDBMS bertentangan dengan amalan terbaik.
Faedah Normalisasi Termasuk:
Dengan menormalkan data, anda boleh meningkatkan lagi prestasi dengan mengalih keluar masukan pendua dan mewujudkan perhubungan antara jadual, membolehkan pertanyaan yang lebih kompleks dan cekap.
Atas ialah kandungan terperinci Patutkah Saya Menyimpan Senarai dalam Satu Lajur SQL atau Menormalkan Data Saya untuk Pertanyaan Lebih Pantas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!