全部产品
Search
文档中心

ApsaraDB for SelectDB:Akselerasi Kueri

更新时间:Jul 30, 2025

ApsaraDB for SelectDB menggunakan pengoptimal Nereids dan mesin eksekusi Pipeline untuk mengoptimalkan kueri secara otomatis. Untuk memenuhi kebutuhan kinerja kueri yang tinggi, Anda juga dapat melakukan optimalisasi manual melalui metode seperti akselerasi berbasis indeks, kueri titik konkurensi tinggi, tampilan yang di-materialisasi, dan optimasi penggabungan tabel.

Perencanaan optimalisasi kueri otomatis

Di SelectDB, pengoptimal Nereids dan mesin eksekusi Pipeline adalah teknologi inti dalam pemrosesan kueri yang mendukung optimalisasi mendalam selama fase perencanaan dan eksekusi kueri. Teknologi ini meningkatkan kinerja kueri kompleks serta efisiensi penggunaan sumber daya. Gambar berikut menunjukkan cara teknologi ini mengoptimalkan pernyataan SQL di SelectDB.

Tabel berikut menjelaskan fitur utama dari setiap teknologi. Untuk informasi lebih lanjut, lihat dokumentasi terkait.

Teknologi

Deskripsi Fitur

Nereids

  • Mendukung kueri kompleks seperti subkueri bersarang multi-level dan kueri penggabungan tabel multi-tabel.

  • Mengurangi kemungkinan kesalahan logika dalam aturan optimalisasi.

Mesin Eksekusi Pipeline

  • Meningkatkan penggunaan CPU.

  • Mengurangi konflik sumber daya antara kueri besar dan kecil.

Optimalisasi Kueri Manual

Jika pengoptimal Nereids dan mesin eksekusi Pipeline di SelectDB tidak memenuhi persyaratan kueri Anda, Anda dapat menggunakan statistik untuk menganalisis data kueri dan memilih kebijakan yang sesuai guna mengoptimalkan kinerja.

Kebijakan Optimalisasi

Skenario

Batasan

Kueri Titik Konkurensi Tinggi

Mengoptimalkan kueri titik dengan konkurensi tinggi.

Catatan

Kueri titik digunakan untuk mengambil sejumlah kecil data dari database berdasarkan kondisi tertentu. Biasanya, kunci utama atau kolom dengan kardinalitas tinggi digunakan untuk operasi ini.

  • Mode penyimpanan baris mengonsumsi ruang penyimpanan tambahan.

  • PreparedStatement hanya mendukung kueri titik berbasis kunci utama.

Tampilan yang Di-Materialisasi Sinkron

Mengoptimalkan kueri kompleks yang berulang dan memakan waktu.

  • Pada tabel dengan model Unique Key, tampilan yang di-materialisasi dapat mengubah urutan kolom tetapi tidak mendukung fungsi agregat. Oleh karena itu, tampilan ini tidak dapat digunakan untuk operasi agregat kasar pada tabel tersebut.

  • Jumlah tampilan yang di-materialisasi yang dibuat di sebuah tabel yang terlalu besar dapat memengaruhi efisiensi impor data.

Untuk informasi lebih lanjut, lihat Batasan.

Akselerasi Berbasis Indeks

Mempercepat proses query atau penempatan data dalam berbagai skenario.

Batasan bervariasi berdasarkan jenis indeks. Untuk informasi lebih lanjut, lihat Akselerasi Berbasis Indeks.

Bucket Shuffle Join

Mengoptimalkan kueri penggabungan tabel.

Kondisi penggabungan harus mencakup kolom terdistribusi dari tabel kiri, dan tabel kiri hanya menggunakan data dari satu partisi selama eksekusi.

Colocation Join

Mengoptimalkan kueri penggabungan tabel.

Kondisi penggabungan harus mencakup kolom terdistribusi dari tabel kiri, dan tabel kiri dan kanan termasuk dalam Colocate Group yang sama.

Filter Runtime

Mengoptimalkan penggabungan tabel besar dengan tabel kecil.

Saat menggunakan Filter Runtime, pernyataan JOIN harus memenuhi persyaratan berikut:

  • Tabel kiri besar, dan tabel kanan kecil. Saat membangun Filter Runtime, biaya komputasi, termasuk overhead memori, harus dipertimbangkan.

  • Ukuran set hasil penggabungan kecil. Ukuran set hasil kecil menunjukkan bahwa pernyataan JOIN menyaring sebagian besar data dari tabel kiri.

Deduplikasi Akurat Berbasis Bitmap

  • Skenario di mana hasil deduplikasi harus akurat dan melibatkan jutaan catatan data.

  • Skema di mana sumber daya penyimpanan cukup tersedia.

  • Batasan pada tipe data:

    • Bilangan bulat bertipe TINYINT, SMALLINT, INT, dan BIGINT dapat digunakan langsung.

    • Non-bilangan bulat, seperti string, dapat digunakan setelah dipetakan ke bilangan bulat menggunakan kamus global. Ini meningkatkan biaya pemeliharaan.

  • Batasan pada memori: Jika kardinalitas data tinggi, seperti miliaran catatan data, Bitmap perlu menyimpan larik bit besar. Ini meningkatkan penggunaan memori dan dapat menyebabkan kekurangan sumber daya memori.

Deduplikasi Perkiraan Menggunakan Fitur HLL

  • Skema di mana jumlah data masif, seperti miliaran catatan data, perlu diproses dan margin kesalahan tertentu diperbolehkan dalam hasil.

  • Skema di mana penggabungan hasil efisien diperlukan dalam sistem terdistribusi.

  • Kehilangan akurasi: Hasil tidak sepenuhnya akurat. Tingkat kesalahan menurun seiring dengan peningkatan kardinalitas data.

  • Konfigurasi parameter yang tepat: Akurasi HyperLogLog (HLL) ditentukan oleh parameter seperti jumlah register dan bit hash. Pengaturan parameter yang tidak tepat dapat memengaruhi akurasi hasil.