ApsaraDB for SelectDB menggunakan pengoptimal Nereids dan mesin eksekusi Pipeline untuk mengoptimalkan kueri secara otomatis. Untuk memenuhi kebutuhan kueri berkinerja tinggi, Anda juga dapat melakukan optimasi kueri secara manual, misalnya dengan menggunakan akselerasi berbasis indeks, kueri titik berkonkurensi tinggi, tampilan yang di-materialisasi, serta optimasi penggabungan tabel.
Perencanaan optimasi kueri otomatis
Di SelectDB, pengoptimal Nereids dan mesin eksekusi Pipeline merupakan teknologi inti dalam pemrosesan kueri yang mampu melakukan optimasi mendalam pada tahap perencanaan dan eksekusi kueri. Teknologi ini secara signifikan meningkatkan kinerja kueri kompleks dan efisiensi penggunaan sumber daya. Gambar berikut menunjukkan cara teknologi tersebut mengoptimalkan pernyataan SQL di SelectDB.
Tabel berikut menjelaskan fitur utama masing-masing teknologi. Untuk informasi lebih lanjut, lihat dokumentasi terkait.
|
Technology |
Feature description |
|
|
|
Optimasi kueri manual
Jika pengoptimal Nereids dan mesin eksekusi Pipeline di SelectDB tidak memenuhi kebutuhan kueri Anda, Anda dapat menggunakan statistik untuk menganalisis data kueri dan memilih kebijakan yang sesuai guna mengoptimalkan kueri.
|
Optimization policy |
Scenario |
Limit |
|
Anda ingin mengoptimalkan kueri titik berkonkurensi tinggi. Catatan
Point query adalah mengambil sejumlah kecil data dari database yang memenuhi kondisi tertentu. Dalam kebanyakan kasus, primary key atau kolom dengan kardinalitas tinggi digunakan untuk melakukan pengambilan tersebut. |
|
|
|
Anda ingin mengoptimalkan kueri kompleks yang bersifat repetitif dan memakan waktu lama. |
Untuk informasi lebih lanjut, lihat Synchronous materialized view. |
|
|
Anda ingin melakukan kueri atau menemukan data dengan cepat dalam skenario apa pun. |
Batasan bervariasi tergantung pada jenis indeks. Untuk informasi lebih lanjut, lihat Index-based acceleration. |
|
|
Anda ingin mengoptimalkan kueri penggabungan tabel (join queries). |
Kondisi join harus mencakup kolom terdistribusi dari tabel kiri, dan tabel kiri hanya menggunakan data dari satu partisi selama eksekusi. |
|
|
Anda ingin mengoptimalkan kueri penggabungan tabel (join queries). |
Kondisi join harus mencakup kolom terdistribusi dari tabel kiri, dan tabel kiri serta kanan termasuk dalam Colocate Group yang sama. |
|
|
Skema di mana proses penggabungan tabel besar dengan tabel kecil perlu dioptimalkan. |
Saat menggunakan Runtime filter, pernyataan JOIN harus memenuhi persyaratan berikut:
|
|
|
|
|
|
|