Pola peta panas untuk kunci indeks

Halaman ini menampilkan contoh pola yang mungkin Anda lihat di peta panas Key Visualizer. Pola ini dapat membantu Anda memecahkan masalah performa tertentu.

Penggunaan yang didistribusikan secara merata

Peta panas yang menampilkan operasi baca dan tulis yang didistribusikan secara merata

Jika peta panas menunjukkan campuran warna gelap dan terang yang terperinci, operasi tulis/hapus untuk kunci indeks didistribusikan secara merata di seluruh database. Peta panas ini kemungkinan mewakili pola penggunaan yang efektif untuk mode Datastore.

Indeks pada kunci berurutan

Peta panas dengan satu garis diagonal terang dapat menunjukkan indeks yang berada pada kunci yang meningkat atau menurun secara drastis, seperti stempel waktu. Indeks pada kunci berurutan tidak direkomendasikan dan dapat membuat hotspot. Saat menggunakan hotspot, Anda mungkin melihat peningkatan latensi yang sesuai.

Beberapa contoh hotspot umum di indeks adalah sebagai berikut:

Hotspot karena stempel waktu yang meningkat

Peta panas yang menampilkan hotspot karena peningkatan stempel waktu

Dalam contoh ini, peta panas dengan satu garis diagonal terang dapat menunjukkan database yang menggunakan operasi operasi tulis/hapus indeks yang meningkat atau menurun secara ketat pada properti stempel waktu.

Hotspot karena peningkatan nama properti

Peta panas yang menampilkan hotspot karena peningkatan properti

Dalam contoh ini, peta panas dengan satu garis diagonal terang dapat menunjukkan database yang menggunakan operasi operasi tulis/hapus indeks yang meningkat atau menurun secara ketat pada properti inkremental, seperti nomor invoice yang dibuat otomatis.

Untuk mengidentifikasi masalah hotspotting, gunakan alat Key Visualizer dan pahami struktur kunci indeks untuk menentukan indeks mana yang menyebabkan masalah dan mengecualikan indeks tersebut dengan praktik terbaik.

Memahami struktur kunci indeks

Sebelum memahami struktur kunci indeks yang Anda lihat di alat Key Visualizer, pelajari indeks dalam mode Datastore.

Kode berikut menunjukkan contoh format kunci indeks yang Anda lihat saat mengarahkan kursor ke rentang kunci yang terpengaruh pada peta panas.

NAMESPACE: NS KIND: Users 
PROPERTIES: (Timestamp: DESC, Name: DESC)
ANCESTOR: KEY(PROJECT('PROJECT_ID'),NAMESPACE('NS'),`UserList`,1)
VALUES: (16500000000000001,'Alice')
ENTITY:KEY(PROJECT('PROJECT_ID'),NAMESPACE(''),`UserList`,1,`User`,5000000000000001)

Dengan keterangan:

  • NAMESPACE: namespace entity.
  • KIND: jenis entity yang mengategorikan entity.
  • PROPERTIES: properti yang terkait dengan entitas. Properti pengurutan __key__ hanya ditampilkan untuk definisi indeks yang mengubah pengurutan default.
  • ANCESTOR: jalur ancestor opsional untuk menemukan entity dalam hierarki database.
  • VALUES: nilai setiap properti.
  • ENTITY: ID entitas yang diperbarui dalam operasi.

Dari contoh sebelumnya, identifikasi properti dari nilai PROPERTIES untuk menemukan indeks yang terpengaruh.

Untuk menemukan indeks, selesaikan langkah-langkah berikut:

  1. Buka halaman Indeks mode Datastore di konsol Google Cloud.

    Buka Indexes mode Datastore

    Anda dapat mengidentifikasi jenis indeks dengan menganalisis kolom PROPERTIES. Lihat contoh kunci indeks untuk informasi selengkapnya.

  2. Klik Filter, pilih Kolom, lalu masukkan nama kolom.

    Gunakan operator OR untuk menambahkan lebih banyak properti jika indeks komposit.

Setelah mengidentifikasi indeks yang menyebabkan masalah, Anda dapat menggunakan solusi berikut:

  • Indeks bawaan: Kecualikan properti sehingga indeks tidak mempertahankan entri indeks untuk properti tersebut. Lihat Properti yang dikecualikan untuk mengetahui informasi selengkapnya.
  • Indeks komposit: Ubah indeks dalam file index.yaml untuk memastikan bahwa kolom yang nilainya meningkat atau menurun secara monoton tidak dipilih sebagai kolom pertama untuk pengindeksan, atau hapus indeks. Lihat Tentang index.yaml untuk mengetahui informasi selengkapnya.

Contoh entri kunci indeks pada peta panas

Jenis Deskripsi Contoh
Entri indeks bawaan Entri indeks untuk indeks properti tunggal pada properti Timestamp, dalam urutan menurun untuk namespace NS. NAMESPACE: NS
KIND: Users
PROPERTIES: (Timestamp: DESC)
ANCESTOR: NONE
VALUES: (16500000000000001)
ENTITY: KEY(PROJECT('PROJECT_ID'), NAMESPACE('NS'),Pengguna, 5000000000000001)
Entri indeks bawaan Entri indeks untuk indeks properti tunggal di namespace default. NAMESPACE: ' '
KIND: Users
PROPERTIES: (Timestamp: DESC)
ANCESTOR: NONE
VALUES: (16500000000000001)
ENTITY: KEY(PROJECT('PROJECT_ID'), NAMESPACE('NS'),Pengguna, 5000000000000001)
Entri indeks komposit Entri indeks untuk indeks komposit pada properti Timestamp dan properti Name dalam urutan menurun tanpa mengaktifkan ancestor. NAMESPACE: NS
KIND: Users
PROPERTIES: (Timestamp: DESC, Name: DESC)
ANCESTOR: NONE
VALUES: (16500000000000001, 'Alice')
ENTITY: KEY(PROJECT('PROJECT_ID'),NAMESPACE('NS'),Pengguna,5000000000000001)
Entri indeks komposit dengan ancestor Entri indeks untuk indeks komposit pada properti Timestamp dalam urutan menurun dan properti Name dalam urutan menurun dengan ancestor diaktifkan. NAMESPACE: NS
KIND: Users
PROPERTIES: (Timestamp: DESC, Name: ASC)
ANCESTOR: KEY(PROJECT('PROJECT_ID'),NAMESPACE('NS'),UserList,1,User,5000000000000001
VALUES: (16500000000000001, 'Alice')
ENTITY: KEY(PROJECT('PROJECT_ID'),NAMESPACE('NS'),UserList,1,User,5000000000000001)
Entri indeks komposit dengan __key__ Entri indeks untuk indeks komposit pada properti Timestamp dalam urutan menaik dan __key__ dalam urutan menurun tanpa mengaktifkan ancestor. Anda dapat menggunakan __key__ sebagai properti akhir dalam definisi indeks untuk mengubah pengurutan default hasil. NAMESPACE: NS
KIND: Users
PROPERTIES: (Timestamp: ASC, __key__ DESC)
ANCESTOR: NONE
VALUES: (16500000000000001)
ENTITY: KEY(PROJECT('PROJECT_ID'),NAMESPACE('NS'),UserList,1,User,5000000000000001)

Langkah selanjutnya