Sebuah query meminta data spesifik dari sebuah database. Dalam SQL, query menggunakan SELECT untuk menentukan kolom, FROM untuk menentukan tabel, dan WHERE untuk memfilter baris. JOIN menggabungkan tabel. GROUP BY melakukan agregasi. ORDER BY mengurutkan. Database kemudian menguraikan query, merencanakan strategi eksekusi, dan mengembalikan hasilnya. Pertanyaan yang sama dapat diajukan dengan banyak cara, dan beberapa cara jauh lebih cepat daripada yang lain.
Performa kueri bergantung pada beberapa faktor. Indeks mempercepat pencarian pada kolom yang difilter. Perencana kueri memilih di antara berbagai strategi eksekusi berdasarkan statistik tentang data. Statistik yang sudah usang menyebabkan rencana yang buruk. Menulis kueri yang menggunakan indeks secara efektif adalah sebuah keterampilan. Fungsi yang diterapkan pada kolom yang diindeks dalam klausa WHERE mencegah indeks digunakan. Kueri yang memilih semua kolom padahal hanya beberapa yang dibutuhkan akan membuang bandwidth dan memori. Subkueri yang berjalan sekali per baris akan lambat. Logika yang sama seperti join akan cepat. Optimasi kueri sebagian merupakan seni, sebagian lagi sains. Basis data menyediakan alat: rencana EXPLAIN, profiler kueri, dan penghitung kinerja. Membaca alat-alat tersebut membutuhkan latihan. Kueri yang berjalan dalam hitungan milidetik pada kumpulan data kecil dapat memakan waktu beberapa menit pada kumpulan data besar. Perbedaannya seringkali terletak pada rencana, bukan pada perangkat keras.
Komponen kueri
- PILIH — kolom yang akan dikembalikan
- DARI — tabel yang akan dikueri
- DI MANA — filter baris
- GABUNG — gabungkan tabel
- GROUP BY — menggabungkan baris
- ORDER BY — mengurutkan hasil
Sebuah query adalah sebuah pertanyaan. Database akan menjawabnya. Kualitas jawaban bergantung pada bagaimana pertanyaan itu diajukan.
Comments
No comments yet. Be the first to share a thought.
Leave a comment