Topik ini menjelaskan istilah terkait proses kueri dan rencana eksekusi AnalyticDB for MySQL.
Proses kueri
AnalyticDB for MySQL menggunakan pernyataan SQL untuk membantu Anda mengelola data yang disimpan dalam sistem. Bagian ini menjelaskan proses pembuatan rencana eksekusi untuk kueri SQL:
- Klien mengirimkan pernyataan SQL ke node kontrol, yaitu node akses frontend dari AnalyticDB for MySQL. Untuk informasi lebih lanjut tentang node akses, lihat Arsitektur Teknis.
- Parser pada node kontrol mem-parsing pernyataan SQL untuk menghasilkan pohon sintaksis dan kemudian menghasilkan rencana eksekusi logis awal.
- Optimizer pada node kontrol mengevaluasi apakah rencana eksekusi logis awal perlu dioptimalkan atau ditulis ulang, menghasilkan rencana eksekusi logis akhir, serta menentukan apakah rencana tersebut perlu dipecah berdasarkan kebutuhan transmisi jaringan. Metode eksekusi ditentukan dalam rencana eksekusi logis, termasuk jenis join, urutan join, metode agregasi, dan metode redistribusi data.
- Node executor menerima rencana eksekusi logis akhir dan mengubahnya menjadi rencana eksekusi fisik. Rencana eksekusi fisik terdiri dari tahapan dan operator yang digunakan untuk memproses data sesuai aturan tertentu.
- Node executor mengembalikan hasil pemrosesan data akhir ke klien atau menulis hasilnya ke tabel AnalyticDB for MySQL dan sistem penyimpanan eksternal seperti Object Storage Service (OSS).
Istilah terkait rencana eksekusi
Istilah berikut membantu Anda menganalisis rencana eksekusi fisik dengan lebih baik di AnalyticDB for MySQL.
- tahapPada fase eksekusi, kueri di AnalyticDB for MySQL pertama-tama dibagi menjadi beberapa tahap. Sebuah tahap adalah bagian fisik dari rencana eksekusi. Data dari sebuah tahap dapat berasal dari sistem penyimpanan bawah atau ditransfer melalui jaringan. Sebuah tahap terdiri dari tugas-tugas dengan jenis yang sama yang didistribusikan pada node executor yang berbeda. Beberapa tugas dapat memproses data secara paralel.Catatan Fitur diagnostik SQL dari AnalyticDB for MySQL memungkinkan Anda mendiagnosis hasil pada tingkat tahap. Untuk informasi lebih lanjut, lihat Hasil Diagnosis Tingkat Tahap.
- tugas
Tugas adalah entitas eksekusi dari sebuah tahap pada node executor. Sebuah tahap terdiri dari beberapa tugas dengan jenis yang sama. Tugas dieksekusi secara paralel untuk memproses data dalam kluster.
- operatorOperator adalah unit pemrosesan data dasar di AnalyticDB for MySQL. AnalyticDB for MySQL menentukan apakah akan memproses data dalam mode paralel atau serial berdasarkan semantik yang dinyatakan oleh operator atau dependensi di antara operator.Catatan Fitur diagnostik SQL dari AnalyticDB for MySQL memungkinkan Anda mendiagnosis hasil pada tingkat operator. Untuk informasi lebih lanjut, lihat Hasil Diagnosis Tingkat Operator.

Gambar di atas menunjukkan proses eksekusi kueri agregasi grup. Node kontrol dari AnalyticDB for MySQL mendistribusikan shard rencana eksekusi logis kueri ke setiap node yang mengeksekusi tugas.
- Tahap 2 terdiri dari empat tugas yang memindai, menyaring, dan melakukan agregasi parsial pada data secara paralel.
- Tahap 1 terdiri dari dua tugas yang melakukan agregasi akhir secara paralel.
- Tahap 0 terdiri dari satu tugas yang mengumpulkan hasil agregasi akhir yang dihasilkan dari dua tugas Tahap 1.