View a markdown version of this page

Bekerja dengan rencana Aurora DSQL EXPLAIN - Amazon Aurora DSQL

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bekerja dengan rencana Aurora DSQL EXPLAIN

Aurora DSQL menggunakan struktur rencana EXPLAIN yang mirip dengan PostgreSQL, tetapi dengan tambahan kunci yang mencerminkan arsitektur terdistribusi dan model eksekusi.

Dalam dokumentasi ini, kami akan memberikan ikhtisar rencana Aurora DSQL EXPLAIN, menyoroti persamaan dan perbedaan dibandingkan dengan PostgreSQL. Kami akan membahas berbagai jenis operasi pemindaian yang tersedia di Aurora DSQL dan membantu Anda memahami biaya menjalankan kueri Anda.

PostgreSQL VS Aurora DSQL MENJELASKAN rencana

Aurora DSQL dibangun di atas database PostgreSQL dan berbagi sebagian besar struktur rencana dengan PostgreSQL, tetapi memiliki perbedaan arsitektur utama yang mempengaruhi eksekusi kueri dan pengoptimalan:

Fitur PostgreSQL Aurora DSQL

Penyimpanan Data

Penyimpanan Tumpukan

Tidak ada tumpukan, semua baris diindeks oleh pengenal unik

Kunci Utama

Indeks kunci utama terpisah dari data tabel

Indeks kunci utama adalah tabel dengan semua kolom tambahan sebagai kolom INCLUDE

Indeks Sekunder

Indeks sekunder standar

Bekerja sama seperti PostgreSQL, dengan kemampuan untuk menyertakan kolom non-kunci

Kemampuan Penyaringan

Kondisi Indeks, Filter Heap

Kondisi Indeks, Filter Penyimpanan, Filter Prosesor Kueri

Jenis Pindai

Pemindaian Berurutan, Pemindaian Indeks, Pemindaian Indeks Saja

Pemindaian Penuh, Pemindaian Indeks Hanya, Pemindaian Indeks

Eksekusi Kueri

Lokal ke Database

Terdistribusi (komputasi dan penyimpanan terpisah)

Aurora DSQL menyimpan data tabel secara langsung dalam urutan kunci primer daripada di tumpukan terpisah. Setiap baris diidentifikasi oleh kunci unik, biasanya kunci utama, yang memungkinkan database untuk mengoptimalkan pencarian dengan lebih efisien. Perbedaan arsitektur menjelaskan mengapa Aurora DSQL sering menggunakan Indeks Only Scan dalam kasus di mana PostgreSQL mungkin memilih pemindaian berurutan.

Perbedaan utama lainnya adalah bahwa Aurora DSQL memisahkan komputasi dari penyimpanan, memungkinkan filter diterapkan lebih awal di jalur eksekusi untuk mengurangi pergerakan data dan meningkatkan kinerja.

Untuk lebih lanjut menggunakan paket EXPLAIN dengan PostgreSQL, lihat dokumentasi PostgreSQL EXPLAIN.

Elemen kunci dalam rencana Aurora DSQL EXPLAIN

Paket Aurora DSQL EXPLAIN memberikan informasi terperinci tentang bagaimana kueri dijalankan, termasuk di mana pemfilteran terjadi dan kolom mana yang diambil dari penyimpanan. Memahami output ini membantu Anda mengoptimalkan kinerja kueri.

Indeks Cond

Kondisi yang digunakan untuk menavigasi indeks. Penyaringan paling efisien yang mengurangi data yang dipindai. Di Aurora DSQL, kondisi indeks dapat diterapkan pada beberapa lapisan rencana eksekusi.

Proyeksi

Kolom diambil dari penyimpanan. Lebih sedikit proyeksi berarti kinerja yang lebih baik.

Filter Penyimpanan

Kondisi diterapkan pada tingkat penyimpanan. Lebih efisien daripada filter prosesor query.

Filter Prosesor Kueri

Kondisi diterapkan pada tingkat prosesor query. Memerlukan transfer semua data sebelum penyaringan, yang menghasilkan pergerakan data dan biaya pemrosesan yang lebih tinggi.

Filter dalam Aurora DSQL

Aurora DSQL memisahkan komputasi dari penyimpanan, yang berarti bahwa titik di mana filter diterapkan selama eksekusi kueri memiliki dampak signifikan pada kinerja. Filter yang diterapkan sebelum volume besar data ditransfer mengurangi latensi dan meningkatkan efisiensi. Semakin dini filter diterapkan, semakin sedikit data yang perlu diproses, dipindahkan, dan dipindai, menghasilkan kueri yang lebih cepat.

Aurora DSQL dapat menerapkan filter pada beberapa tahap di jalur kueri. Memahami tahapan ini adalah kunci untuk menafsirkan rencana kueri dan mengoptimalkan kinerja.

Tingkat Jenis Filter Deskripsi
1 Kondisi Indeks

Diterapkan saat memindai indeks. Membatasi berapa banyak data yang dibaca dari penyimpanan dan mengurangi data yang dikirim ke lapisan komputasi.

2 Filter Penyimpanan Diterapkan setelah data dibaca dari penyimpanan tetapi sebelum dikirim ke komputasi. Contoh di sini adalah filter pada kolom include dari indeks. Mengurangi transfer data tetapi tidak jumlah yang dibaca.
3 Filter Prosesor Kueri Diterapkan setelah data mencapai lapisan komputasi. Semua data harus ditransfer terlebih dahulu, yang meningkatkan latensi dan biaya. Saat ini, Aurora DSQL tidak dapat melakukan semua operasi penyaringan dan proyeksi pada penyimpanan, sehingga beberapa kueri mungkin dipaksa untuk kembali ke jenis pemfilteran ini.