*Perbezaan prestasi `PILIH 与
PILIH Lajur` dalam pertanyaan pangkalan data**
Dalam pertanyaan pangkalan data, pilihan menggunakan SELECT *
(memilih semua lajur) atau SELECT Column
(memilih lajur yang diperlukan sahaja) mempunyai kesan ke atas prestasi. Artikel ini akan menganalisis perbezaan prestasi antara dua pilihan ini.
Overhed rangkaian dan penggunaan memori
Menggunakan SELECT *
akan mendapatkan semula semua lajur dalam pangkalan data, walaupun hanya sebahagian daripadanya diperlukan. Ini meningkatkan overhed rangkaian kerana lebih banyak data perlu dihantar. Selain itu, enjin pangkalan data mesti memproses keseluruhan tuple, menyebabkan penggunaan memori meningkat untuk mengalih keluar lajur yang tidak perlu.
Pendapatan Data
Sama ada enjin pangkalan data mendapatkan semula tupel atom atau hanya lajur yang diminta bergantung pada pelaksanaan pangkalan data dan pengoptimum pertanyaan. Dalam sesetengah kes, keseluruhan tupel diambil, menghasilkan overhed I/O yang sama tanpa mengira jenis pertanyaan. Walau bagaimanapun, dalam kes lain, enjin pangkalan data boleh mengoptimumkan pertanyaan untuk mendapatkan hanya lajur yang diminta secara khusus, dengan itu mengurangkan I/O.
Ringkasan perbezaan prestasi
Berdasarkan faktor di atas, SELECT Column
pertanyaan secara amnya mempunyai kelebihan berikut berbanding SELECT *
pertanyaan:
Kesimpulan
Untuk prestasi terbaik, adalah disyorkan untuk mengelak daripada menggunakan dan sebaliknya tentukan hanya lajur yang diperlukan dalam pertanyaan. Pendekatan ini mengoptimumkan pengambilan data, mengurangkan overhed rangkaian dan memori, dan membolehkan pangkalan data menggunakan indeks dengan lebih cekap. SELECT *
Atas ialah kandungan terperinci SELECT * vs. SELECT Lajur: Apakah Implikasi Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!