Fitur indeks sekunder memungkinkan Anda mengkueri data berdasarkan kunci utama tabel dan kolom indeks dari indeks sekunder yang dibuat untuk tabel tersebut. Jika Anda perlu menggunakan kolom atribut tabel untuk mengkueri data, Anda dapat membuat indeks sekunder untuk mempercepat proses kueri. Saat membuat indeks sekunder, Anda dapat menetapkan kolom indeks atau atribut indeks ke kolom yang telah ditentukan sebelumnya saat pembuatan tabel. Setelah indeks sekunder dibuat, Anda dapat menggunakannya untuk mengkueri data.
Indeks sekunder diklasifikasikan menjadi indeks sekunder global dan lokal. Untuk informasi lebih lanjut tentang fitur indeks sekunder, lihat Indeks Sekunder.
Anda dapat membuat satu atau lebih tabel indeks saat membuat tabel data dengan memanggil operasi CreateTable. Untuk informasi lebih lanjut, lihat Buat tabel data.
Prasyarat
Instansi OTSClient diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi klien Tablestore.
Tabel data dengan parameter max_versions disetel ke 1 telah dibuat. Salah satu kondisi berikut harus dipenuhi oleh parameter time_to_live tabel data:
Parameter time_to_live tabel data disetel ke -1, yang berarti bahwa data dalam tabel tidak pernah kedaluwarsa.
Parameter time_to_live tabel data disetel ke nilai selain -1, dan operasi pembaruan pada tabel dilarang.
Kolom yang telah ditentukan sebelumnya telah ditetapkan untuk tabel data.
Catatan Penggunaan
Nama tabel indeks harus berbeda dari nama tabel seri waktu atau tabel data yang ada.
Saat membuat indeks sekunder, Tablestore secara otomatis menambahkan kolom kunci utama tabel data yang tidak ditentukan sebagai kolom indeks ke indeks sekunder sebagai kolom kunci utama indeks sekunder.
Saat membuat indeks sekunder lokal, kolom kunci utama pertama tabel indeks harus sama dengan kolom kunci utama pertama tabel data.
Operasi API
/**
* Buat indeks sekunder.
* @api
*
* @param [] $request
* Parameter permintaan, yaitu nama tabel data.
* @return [] Respons.
* @throws OTSClientException Pengecualian yang dikembalikan ketika terjadi kesalahan parameter atau server Tablestore mengembalikan kesalahan verifikasi.
* @throws OTSServerException Pengecualian yang dikembalikan ketika server Tablestore mengembalikan kesalahan.
* @example "src/examples/CreateIndex.php"
*/
public function createIndex(array $request)Parameter
Parameter | Deskripsi |
table_name | Nama tabel data. |
index_meta | Informasi skema tentang tabel indeks. Informasi skema mencakup item berikut:
|
include_base_data | Menentukan apakah akan menyertakan data yang ada dari tabel data dalam tabel indeks. Nilai default: false.
|
Contoh
Buat indeks sekunder global
Jika Anda tidak menentukan parameter index_type dan index_update_mode saat membuat indeks sekunder, indeks sekunder global akan dibuat.
$request = array(
'table_name' => '<TABLE_NAME>', // Tentukan nama tabel data.
//'include_base_data' => true, // Tetapkan parameter include_base_data ke true untuk menyertakan data yang ada dari tabel data ke tabel indeks.
'index_meta' => array(
'name' => '<INDEX_NAME>', // Tentukan nama tabel indeks.
'primary_key' => array('Col1'), // Tentukan kolom kunci utama tabel indeks.
'defined_column' => array('Col2') // Tentukan kolom atribut tabel indeks.
)
);
$otsClient->createIndex($request);Anda juga dapat menentukan parameter index_type dan index_update_mode untuk membuat indeks sekunder global.
$request = array(
'table_name' => '<TABLE_NAME>', // Tentukan nama tabel data.
//'include_base_data' => true, // Tetapkan parameter include_base_data ke true untuk menyertakan data yang ada dari tabel data ke tabel indeks.
'index_meta' => array(
'name' => '<INDEX_NAME>', // Tentukan nama tabel indeks.
'primary_key' => array('Col1'), // Tentukan kolom kunci utama tabel indeks.
'defined_column' => array('Col2') // Tentukan kolom atribut tabel indeks.
'index_type' => IndexTypeConst::GLOBAL_INDEX,
'index_update_mode' => IndexUpdateModeConst::ASYNC_INDEX
)
);
$otsClient->createIndex($request);Buat indeks sekunder lokal
Kode contoh berikut menunjukkan cara membuat indeks sekunder lokal:
$createLocalRequest = array (
'table_name' => '<TABLE_NAME>', // Tentukan nama tabel data.
//'include_base_data' => true, // Tetapkan parameter include_base_data ke true untuk menyertakan data yang ada dari tabel data ke tabel indeks.
'index_meta' => array (
'name' => '<INDEX_NAME>', // Tentukan nama tabel indeks.
'primary_key' => array('PK0', 'Col1'), // Tentukan kolom kunci utama tabel indeks. Kolom kunci utama pertama tabel indeks harus sama dengan kolom kunci utama pertama tabel data.
'defined_column' => array('Col2') // Tentukan kolom atribut tabel indeks.
'index_type' => IndexTypeConst::LOCAL_INDEX,
'index_update_mode' => IndexUpdateModeConst::SYNC_INDEX
)
);
$otsClient->createIndex($createLocalRequest);Referensi
Setelah membuat indeks sekunder, Anda dapat menggunakannya untuk membaca satu baris data atau data dengan nilai kunci utama dalam rentang tertentu. Untuk informasi lebih lanjut, lihat Gunakan indeks sekunder untuk membaca data.
Anda dapat menghapus indeks sekunder yang tidak lagi digunakan. Untuk informasi lebih lanjut, lihat Hapus indeks sekunder.