Pengoptimuman Pangkalan Data: Jadual Diratakan lwn. Lajur CSV
Apabila mereka bentuk pangkalan data, keputusan antara menyimpan data dalam satu lajur dengan koma -nilai dipisahkan (CSV) atau menggunakan jadual yang diratakan dengan baris untuk setiap entri sentiasa timbul. Artikel ini menyelidiki implikasi prestasi pendekatan ini, memfokuskan pada pertanyaan yang melibatkan penapisan atau carian.
Pertimbangkan jadual SQL dengan baris bentuk:
value, "a,b,c,d,e,f,g,h,i,j", value3, value4
tempat pertanyaan mencari pasangan nilai suka, %b% menggunakan operator LIKE.
Sebaliknya, jadual yang diratakan akan mempunyai setiap pilihatur sebagai baris berasingan:
value, a, value3, value4 ... value, j, value3, value4
membenarkan pertanyaan menggunakan = operator pada nilai,b.
Untuk kes penggunaan khusus ini, dengan kira-kira 10,000 baris dan purata 8 entri setiap "senarai" elemen, implikasi prestasi adalah ketara.
PERTANYAAN SUKA tidak boleh memanfaatkan indeks, mengakibatkan lebih perlahan carian. Selain itu, menyimpan data dalam satu lajur CSV ialah anti-corak yang boleh menghalang prestasi pangkalan data.
Memecahkan lajur CSV kepada lajur yang berasingan dan menormalkan pangkalan data akan meningkatkan kecekapan dengan ketara. Dengan berbuat demikian, indeks boleh digunakan dan operator LIKE boleh digantikan dengan operator =, yang membawa kepada pertanyaan yang lebih pantas.
Atas ialah kandungan terperinci Jadual Diratakan lwn. Lajur CSV: Reka Bentuk Pangkalan Data Manakah yang Menawarkan Prestasi Pertanyaan Lebih Baik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!