PolarDB for MySQL memungkinkan Anda membuat indeks parsial pada tabel partisi. Anda dapat membuat indeks hanya pada satu atau beberapa partisi dari tabel partisi, bukan pada semua partisi. Dengan membuat indeks yang berbeda pada partisi-partisi dalam tabel partisi, Anda dapat memenuhi kebutuhan kueri yang berbeda sekaligus menghemat ruang penyimpanan.
Scenarios
Tabel pesanan atau tabel log
Dalam skenario penggunaan tabel pesanan atau tabel log, biasanya dibuat tabel partisi rentang berbasis waktu. Namun, hanya satu atau dua partisi terbaru yang sering dikueri. Anda dapat membuat secondary index hanya pada partisi yang sering dikueri tersebut. Di sisi lain, MySQL native dan database lainnya hanya memungkinkan pembuatan indeks yang sama pada semua partisi. Meskipun pendekatan ini dapat memenuhi kebutuhan kueri pada partisi hotspot, hal ini mengonsumsi ruang penyimpanan yang besar akibat secondary index yang dibuat pada semua partisi.
Dalam skenario tersebut, Anda dapat membuat partial index pada tabel partisi, dengan hanya membuat secondary index yang diperlukan pada partisi hot. Pendekatan ini tidak hanya memenuhi kebutuhan kueri pada partisi hot, tetapi juga menghemat ruang penyimpanan untuk secondary index.
Kueri dan analisis data historis
Dalam skenario kueri dan analisis data historis, biasanya digunakan partisi rentang berbasis waktu. Pada partisi baru, Anda dapat melakukan penyisipan data dengan cepat dan menjalankan kueri sederhana. Sebagian besar kueri analitis yang kompleks dilakukan pada partisi historis. Untuk memenuhi kebutuhan tersebut, Anda dapat membuat beberapa secondary index pada partisi historis. Namun, semakin banyak indeks yang dibuat pada suatu partisi, semakin menurun kecepatan penulisan data.
Dalam skenario ini, Anda dapat membuat partial index pada tabel partisi: buat secondary index untuk kueri sederhana pada partisi hot dan secondary index untuk kueri analitis pada partisi historis.
Dengan menerapkan indeks yang berbeda sesuai kebutuhan bisnis pada masing-masing partisi, performa penyisipan data ke partisi hot tetap terjaga, kebutuhan kueri dan analisis pada partisi historis terpenuhi, serta penggunaan ruang penyimpanan untuk secondary index dapat diminimalkan.
Prerequisites
Kluster harus menjalankan PolarDB for MySQL 8.0.2 dengan versi revisi 8.0.2.2.21 atau lebih baru. Untuk memeriksa versi kluster, lihat bagian "Query the engine version" pada topik Engine versions.
Limits
Anda tidak dapat membuat partial index pada primary key.
Anda tidak dapat membuat global secondary index (GSI) sebagai partial index. Namun, Anda dapat membuat global secondary index dan partial index dalam tabel partisi yang sama.
Anda tidak dapat membuat indeks tipe FULLTEXT dan SPATIAL sebagai partial index.
Pengoptimal hanya dapat memilih indeks yang tersedia pada tabel partisi yang akan diakses.
Usage
Anda dapat membuat partial index dalam tabel partisi dan memodifikasinya setelah dibuat. Untuk informasi tentang cara membuat dan memodifikasi partial index, lihat Create a partial index dan Modify a partial index.
Fitur pembuatan partial index dalam tabel partisi sedang dalam rilis canary. Untuk menggunakan fitur ini, bergabunglah dengan grup DingTalk 24490017825 untuk mendapatkan dukungan teknis.