全部产品
Search
文档中心

ApsaraDB for SelectDB:Percepatan berbasis indeks

更新时间:Jul 30, 2025

Topik ini menjelaskan indeks cerdas bawaan dari ApsaraDB for SelectDB dan cara menggunakan indeks tersebut.

Informasi latar belakang

Indeks digunakan untuk memfilter atau mengkueri data dengan cepat. ApsaraDB for SelectDB mendukung jenis-jenis indeks berikut:

Indeks peta zona

Indeks peta zona adalah informasi indeks yang secara otomatis dipertahankan untuk setiap kolom dalam format penyimpanan berorientasi kolom, termasuk Min, Max, dan jumlah nilai NULL. Indeks peta zona dibuat dan dipertahankan secara otomatis oleh ApsaraDB for SelectDB.

Indeks awalan

ApsaraDB for SelectDB adalah database pemrosesan analitik online (OLAP) yang menggunakan arsitektur pemrosesan paralel masif (MPP) untuk menangani sejumlah besar data dengan meningkatkan konkurensi. ApsaraDB for SelectDB dapat bekerja sama dengan skema indeks untuk mempercepat kueri.

Data di ApsaraDB for SelectDB disimpan dalam struktur data yang mirip dengan tabel string terurut (SSTable). Struktur data ini adalah struktur data terurut yang dapat mengurutkan dan menyimpan data berdasarkan kolom tertentu. Dalam struktur data ini, Anda dapat mengkueri data secara efisien berdasarkan kolom pengurutan.

Dalam model Aggregate, Unique, dan Duplicate key, penyimpanan data dasar mengurutkan dan menyimpan data berdasarkan kolom yang ditentukan dalam pernyataan AGGREGATE KEY, UNIQUE KEY, dan DUPLICATE KEY yang digunakan untuk membuat tabel. Indeks awalan digunakan untuk mengkueri data dengan cepat berdasarkan kolom awalan yang ditentukan setelah data diurutkan.

Contoh

Contoh berikut menggunakan 36 byte pertama dari baris data sebagai indeks awalan. Indeks awalan akan dipotong jika data bertipe VARCHAR. Contoh:

  1. Indeks awalan dari skema berikut adalah user_id(8 Bytes)+age(4 Bytes)+message(prefix 20 Bytes).

    NamaKolom

    Tipe

    user_id

    BIGINT

    age

    INT

    message

    VARCHAR(100)

    max_dwell_time

    DATETIME

    min_dwell_time

    DATETIME

    Jika awalan dari indeks awalan ditentukan sebagai kondisi kueri, kueri dapat dipercepat. Jalankan pernyataan kueri berikut:

    Contoh 1:

    SELECT * FROM table WHERE user_id=1829239 and age=20;

    Contoh 2:

    SELECT * FROM table WHERE age=20;

    Kecepatan kueri pada Contoh 1 jauh lebih cepat dibandingkan dengan Contoh 2. Saat membuat tabel, urutkan kolom dengan benar untuk meningkatkan efisiensi kueri.

  2. Indeks awalan dari skema berikut adalah user_name(20 Bytes). Indeks awalan tidak mencakup 36 byte dan dipotong karena data bertipe VARCHAR.

    NamaKolom

    Tipe

    user_name

    VARCHAR(20)

    age

    INT

    message

    VARCHAR(100)

    max_dwell_time

    DATETIME

    min_dwell_time

    DATETIME

Modifikasi indeks awalan menggunakan tampilan yang dimaterialisasi

Kolom tabel diurutkan dalam urutan tertentu saat pembuatan tabel. Oleh karena itu, sebuah tabel hanya memiliki satu indeks awalan. Jika Anda mengkueri data berdasarkan kolom yang tidak sesuai dengan indeks awalan, efisiensi kueri mungkin tidak memenuhi kebutuhan bisnis Anda. Untuk meningkatkan efisiensi, Anda dapat membuat tampilan yang dimaterialisasi guna memodifikasi urutan kolom. Untuk informasi lebih lanjut, lihat Tampilan yang dimaterialisasi sinkron.