PolarDB for MySQL memungkinkan Anda membuat indeks parsial pada tabel yang dipartisi. Indeks ini dapat dibuat hanya pada satu atau beberapa partisi tertentu, bukan di seluruh partisi. Dengan pendekatan ini, Anda dapat menyesuaikan indeks berdasarkan kebutuhan kueri untuk setiap partisi sekaligus menghemat ruang penyimpanan.
Skenario
Tabel pesanan atau tabel log
Dalam skenario penggunaan tabel pesanan atau tabel log, biasanya digunakan tabel partisi rentang berbasis waktu. Namun, hanya satu atau dua partisi terbaru yang sering di-query. Anda dapat membuat indeks sekunder hanya pada partisi yang sering diakses. Sementara itu, MySQL asli dan database lainnya mengharuskan pembuatan indeks yang sama di semua partisi. Meskipun hal ini memenuhi kebutuhan kueri partisi panas, ruang penyimpanan yang besar terpakai untuk indeks sekunder di partisi-partisi tersebut.
Dalam skenario ini, Anda dapat membuat indeks parsial pada tabel yang dipartisi. Indeks sekunder hanya dibuat pada partisi panas yang memerlukan kueri intensif. Pendekatan ini tidak hanya memenuhi kebutuhan kueri tetapi juga menghemat ruang penyimpanan untuk indeks sekunder di partisi lainnya.
Kueri dan analisis data historis
Dalam skenario kueri dan analisis data historis, biasanya digunakan partisi rentang berbasis waktu. Untuk partisi baru, Anda dapat menyisipkan data dengan cepat dan melakukan kueri sederhana. Sebagian besar kueri besar untuk analisis data dilakukan pada partisi historis. Untuk memenuhi kebutuhan kueri dan analisis pada partisi historis, Anda dapat membuat beberapa indeks sekunder. Namun, semakin banyak indeks yang dibuat, semakin lambat kecepatan penulisan data.
Dalam skenario ini, Anda dapat membuat indeks parsial pada tabel yang dipartisi: indeks sekunder untuk kueri sederhana di partisi panas dan indeks sekunder untuk analisis data di partisi historis.
Dengan membuat indeks berbeda di setiap partisi sesuai kebutuhan bisnis, performa penyisipan data di partisi panas tetap terjaga, sementara kebutuhan kueri dan analisis pada partisi historis juga terpenuhi. Selain itu, ruang penyimpanan untuk indeks sekunder di partisi diminimalkan secara optimal.
Prasyarat
Cluster harus berjalan pada PolarDB for MySQL 8.0.2 dengan versi revisi 8.0.2.2.21 atau lebih baru. Untuk memeriksa versi cluster, lihat bagian "Query the engine version" dari topik Versi Engine.
Batasan
Anda tidak dapat membuat indeks parsial pada kunci utama.
Anda tidak dapat membuat global secondary index (GSI) sebagai indeks parsial. Namun, Anda dapat membuat global secondary index dan indeks parsial pada tabel yang sama yang dipartisi.
Anda tidak dapat membuat indeks tipe FULLTEXT dan SPATIAL sebagai indeks parsial.
Optimizer hanya dapat memilih indeks yang ada di tabel yang dipartisi untuk diakses.
Penggunaan
Anda dapat membuat indeks parsial pada tabel yang dipartisi. Setelah pembuatan, indeks parsial tersebut dapat dimodifikasi. Untuk informasi lebih lanjut tentang cara membuat dan memodifikasi indeks parsial, lihat Buat indeks parsial dan Modifikasi indeks parsial.
Fitur pembuatan indeks parsial pada tabel yang dipartisi sedang dalam rilis canary. Untuk menggunakan fitur ini, bergabunglah dengan grup DingTalk 24490017825 untuk mendapatkan dukungan teknis.