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 EXPLY
Aurora DSQL menggunakan struktur rencana EXPLORE yang mirip dengan PostgreSQL, tetapi dengan penambahan kunci yang mencerminkan arsitektur terdistribusi dan model eksekusi.
Dalam dokumentasi ini, kami akan memberikan gambaran umum tentang rencana Aurora DSQL EXPLORE, 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 JELASKAN rencana
Aurora DSQL dibangun di atas database PostgreSQL dan berbagi sebagian besar struktur rencana dengan PostgreSQL, tetapi memiliki perbedaan arsitektur utama yang mempengaruhi eksekusi dan pengoptimalan kueri:
| Fitur | PostgreSQL | Aurora DSQL |
|---|---|---|
|
Penyimpanan Data |
Penyimpanan Tumpukan |
Tidak ada tumpukan, semua baris diindeks oleh pengidentifikasi unik |
|
Kunci Utama |
Indeks kunci primer terpisah dari data tabel |
Indeks kunci primer adalah tabel dengan semua kolom tambahan sebagai kolom INCLUDE |
|
Indeks Sekunder |
Indeks sekunder standar |
Bekerja sama dengan PostgreSQL, dengan kemampuan untuk menyertakan kolom non-kunci |
|
Kemampuan Penyaringan |
Kondisi Indeks, Filter Tumpukan |
Kondisi Indeks, Filter Penyimpanan, Filter Prosesor Kueri |
|
Jenis Pindai |
Pemindaian Berurutan, Pemindaian Indeks, Pemindaian Hanya Indeks |
Pemindaian Penuh, Pemindaian Hanya Indeks, Pemindaian Indeks |
|
Eksekusi Kueri |
Lokal ke Database |
Didistribusikan (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 lebih efisien. Perbedaan arsitektur menjelaskan mengapa Aurora DSQL sering menggunakan Index Only Scan dalam kasus di mana PostgreSQL mungkin memilih pemindaian sekuensial.
Perbedaan utama lainnya adalah bahwa Aurora DSQL memisahkan komputasi dari penyimpanan, memungkinkan filter diterapkan sebelumnya di jalur eksekusi untuk mengurangi pergerakan data dan meningkatkan kinerja.
Elemen kunci dalam rencana Aurora DSQL JELASKAN
Rencana Aurora DSQL EXPLOW memberikan informasi rinci tentang bagaimana kueri dijalankan, termasuk di mana pemfilteran terjadi dan kolom mana yang diambil dari penyimpanan. Memahami keluaran ini membantu Anda mengoptimalkan kinerja kueri.
- Indeks Cond
Kondisi yang digunakan untuk menavigasi indeks. Pemfilteran paling efisien yang mengurangi data yang dipindai. Di Aurora DSQL, kondisi indeks dapat diterapkan pada beberapa lapisan rencana eksekusi.
- Proyeksi
Kolom diambil dari penyimpanan. Proyeksi yang lebih sedikit berarti kinerja yang lebih baik.
- Filter Penyimpanan
Kondisi diterapkan pada tingkat penyimpanan. Lebih efisien daripada filter prosesor kueri.
- Filter Prosesor Kueri
-
Kondisi diterapkan pada tingkat prosesor kueri. Memerlukan transfer semua data sebelum penyaringan, yang menghasilkan pergerakan data yang lebih tinggi dan overhead pemrosesan.
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 awal 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 indeks. Mengurangi transfer data tetapi bukan 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 terpaksa kembali ke jenis penyaringan ini. |