全部产品
Search
文档中心

Tablestore:Bagaimana cara memilih metode kueri saat saya menggunakan SQL untuk mengkueri data?

更新时间:Jul 02, 2025

Anda dapat menggunakan tabel pemetaan yang dibuat untuk sebuah tabel atau tabel pemetaan yang dibuat untuk indeks pencarian untuk mengkueri data dalam SQL. Pilih metode kueri berdasarkan skenario.

Informasi latar belakang

Tablestore dapat menyimpan sejumlah besar data terstruktur dan mendukung berbagai jenis skema indeks untuk akselerasi kueri dan analitik dalam berbagai skenario. Tablestore menyediakan skema indeks berikut: kunci utama dari tabel data, yang memungkinkan operasi pembacaan satu baris (GetRow) dan pembacaan rentang (GetRange), tabel indeks sekunder yang berisi kolom kunci utama kustom, serta indeks pencarian yang mendukung indeks terbalik dan indeks spatio-temporal.

Saat menggunakan fitur kueri SQL, Anda dapat mengkueri data melalui akses eksplisit ke tabel indeks sekunder. Tablestore menyediakan dua metode untuk mengkueri data menggunakan indeks pencarian: pemilihan otomatis indeks pencarian dan akses eksplisit ke indeks pencarian. Untuk informasi lebih lanjut, lihat Kebijakan Pemilihan Indeks.

Skenario contoh

Dalam skenario ini, tabel data exampletable berisi kolom kunci utama id dan kolom atribut name dan context. Kolom kunci utama id bertipe Integer, sedangkan kolom atribut name dan context bertipe String. Indeks pencarian bernama exampletable_searchindex dibuat untuk tabel data tersebut. Indeks pencarian mencakup kolom id dan context, dengan tipe masing-masing adalah Integer dan Text.

Topik ini menggunakan skenario ini sebagai contoh untuk menjelaskan cara menggunakan skema indeks yang berbeda untuk mengkueri data dalam SQL.

Gunakan tabel pemetaan tabel

Pilih salah satu metode di bagian ini untuk menggunakan tabel pemetaan tabel berdasarkan skenario. Saat menggunakan tabel pemetaan yang dibuat untuk sebuah tabel, Anda dapat menentukan apakah hasil kueri berada dalam mode konsistensi kuat dan apakah kinerja kueri dapat ditingkatkan dengan mengorbankan akurasi operasi agregat.

Catatan

Untuk informasi tentang cara membuat tabel pemetaan untuk sebuah tabel, lihat Buat Tabel Pemetaan untuk Sebuah Tabel.

Metode 1: Tentukan bahwa hasil kueri berada dalam mode konsistensi akhir dan bahwa kinerja kueri dapat ditingkatkan dengan mengorbankan akurasi operasi agregat

  1. Buat tabel pemetaan bernama exampletable untuk tabel data exampletable dan pertahankan pengaturan default untuk parameter lainnya.

    CREATE TABLE `exampletable` (`id` BIGINT, `name` MEDIUMTEXT, `context` MEDIUMTEXT, PRIMARY KEY(id)) ENGINE='Tablestore';
  2. Kueri data.

    Saat mengeksekusi pernyataan SQL berikut untuk mengkueri data, Tablestore secara otomatis memilih tabel data untuk kueri karena kolom id, name, dan context tidak semuanya terdapat dalam indeks pencarian exampletable_searchindex.

    SELECT * FROM exampletable LIMIT 10;

    Saat mengeksekusi pernyataan SQL berikut untuk mengkueri data, Tablestore secara otomatis memilih indeks pencarian exampletable_searchindex untuk kueri karena indeks pencarian mencakup kolom id dan context.

    SELECT id,context FROM exampletable LIMIT 10;

Metode 2: Tentukan bahwa hasil kueri berada dalam mode konsistensi kuat

  1. Buat tabel pemetaan bernama exampletable untuk tabel data exampletable dan atur data_consistency menjadi strong.

    CREATE TABLE `exampletable` (`id` BIGINT, `name` MEDIUMTEXT, `context` MEDIUMTEXT, PRIMARY KEY(id)) ENGINE='Tablestore', ENGINE_ATTRIBUTE='{"data_consistency": "strong"}';
  2. Kueri data. Untuk informasi lebih lanjut, lihat Kueri Data.

    Jika indeks pencarian digunakan untuk mengkueri data, hasil kueri berada dalam mode konsistensi akhir, yang tidak menjamin konsistensi kuat. Oleh karena itu, Tablestore tidak menggunakan indeks pencarian untuk kueri data.

Metode 3: Tentukan bahwa hasil kueri berada dalam mode konsistensi akhir dan bahwa kinerja kueri tidak dapat ditingkatkan dengan mengorbankan akurasi operasi agregat

  1. Buat tabel pemetaan bernama exampletable untuk tabel data exampletable dan atur data_consistency menjadi eventual serta allow_inaccurate_aggregation menjadi false.

    CREATE TABLE `exampletable` (`id` BIGINT, `name` MEDIUMTEXT, `context` MEDIUMTEXT, PRIMARY KEY(id)) ENGINE='Tablestore', ENGINE_ATTRIBUTE='{"data_consistency": "eventual", "allow_inaccurate_aggregation": false}';
  2. Kueri data. Untuk informasi lebih lanjut, lihat Kueri Data.

    Fitur agregat indeks pencarian tidak memberikan hasil yang sepenuhnya akurat. Oleh karena itu, Tablestore tidak menggunakan indeks pencarian untuk kueri data.

Gunakan tabel pemetaan indeks pencarian

Jika ingin menggunakan indeks pencarian tertentu untuk mengkueri data, Anda dapat membuat tabel pemetaan untuk indeks pencarian tersebut.

Catatan

Untuk informasi tentang cara membuat tabel pemetaan untuk indeks pencarian, lihat Buat Tabel Pemetaan untuk Indeks Pencarian.

  1. Buat tabel pemetaan bernama exampletable_searchindex_test untuk indeks pencarian.

    CREATE TABLE `exampletable_searchindex_test` (`id` BIGINT, `context` MEDIUMTEXT) ENGINE='searchindex' ENGINE_ATTRIBUTE='{"index_name": "exampletable_searchindex", "table_name": "exampletable"}'
  2. Kueri data.

    SELECT id,context FROM exampletable_searchindex_test WHERE text_match(context, "tablestore cool") LIMIT 10;