Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Optimalkan kueri Anda
Gunakan saran di bagian ini untuk mengoptimalkan SQL kueri Anda di Athena.
Gunakan LIMIT dengan klausa ORDER BY
ORDER BY
Klausa mengembalikan data dalam urutan yang diurutkan. Ini membutuhkan Athena untuk mengirim semua baris data ke node pekerja tunggal dan kemudian mengurutkan baris. Jenis kueri ini dapat berjalan untuk waktu yang lama atau bahkan gagal.
Untuk efisiensi yang lebih besar dalam kueri Anda, lihat bagian atas atau bawah N
nilai, dan kemudian juga menggunakan LIMIT
klausa. Ini secara signifikan mengurangi biaya pengurutan dengan mendorong penyortiran dan pembatasan ke node pekerja individu daripada ke satu pekerja.
Optimalkan JOIN klausa
Ketika Anda menggabungkan dua tabel, Athena mendistribusikan tabel di sebelah kanan ke node pekerja, dan kemudian mengalirkan tabel di sebelah kiri untuk melakukan gabungan.
Untuk alasan ini, tentukan tabel yang lebih besar di sisi kiri gabungan dan tabel yang lebih kecil di sisi kanan gabungan. Dengan cara ini, Athena menggunakan lebih sedikit memori dan menjalankan kueri dengan latensi yang lebih rendah.
Perhatikan juga poin-poin berikut:
-
Saat Anda menggunakan beberapa
JOIN
perintah, tentukan tabel dari yang terbesar hingga terkecil. -
Hindari gabungan silang kecuali jika diperlukan oleh kueri.
Optimalkan klausa GROUP BY
GROUP BY
Operator mendistribusikan baris berdasarkan GROUP
BY
kolom ke node pekerja. Kolom ini direferensikan dalam memori dan nilainya dibandingkan saat baris dicerna. Nilai-nilai dikumpulkan bersama ketika GROUP BY
kolom cocok. Dengan mempertimbangkan cara kerja proses ini, disarankan untuk memesan kolom dari kardinalitas tertinggi ke yang terendah.
Gunakan angka, bukan string
Karena angka membutuhkan lebih sedikit memori dan lebih cepat diproses dibandingkan dengan string, gunakan angka alih-alih string jika memungkinkan.
Batasi jumlah kolom
Untuk mengurangi jumlah total memori yang diperlukan untuk menyimpan data Anda, batasi jumlah kolom yang ditentukan dalam SELECT
pernyataan Anda.
Gunakan ekspresi reguler alih-alih LIKE
Kueri yang menyertakan klausa seperti LIKE '%string%'
pada string besar bisa sangat intensif secara komputasi. Saat Anda memfilter beberapa nilai pada kolom string, gunakan fungsi regexp_like ()
Gunakan LIMIT klausa
Alih-alih memilih semua kolom saat Anda menjalankan kueri, gunakan LIMIT
klausa untuk mengembalikan hanya kolom yang Anda butuhkan. Ini mengurangi ukuran kumpulan data yang diproses melalui pipeline eksekusi kueri. LIMIT
klausa lebih membantu ketika Anda menanyakan tabel yang memiliki sejumlah besar kolom yang berbasis string. LIMIT
klausa juga membantu ketika Anda melakukan beberapa gabungan atau agregasi pada kueri apa pun.