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
Jika peta panas menampilkan perpaduan halus antara warna gelap dan cerah, maka operasi tulis/hapus untuk kunci indeks akan 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 yang terang dapat menunjukkan indeks yang ada di kunci yang meningkat atau menurun secara ketat, seperti stempel waktu. Indeks pada kunci berurutan tidak direkomendasikan dan dapat menimbulkan hotspot. Saat melakukan hotspotting, Anda mungkin mengamati latensi peningkatan yang terkait.
Beberapa contoh hotspot umum pada indeks adalah sebagai berikut:
Penggunaan hotspot karena stempel waktu yang meningkat
Dalam contoh ini, peta panas dengan satu garis diagonal terang dapat menunjukkan database yang menggunakan operasi tulis/hapus indeks yang meningkat atau menurun secara ketat pada properti stempel waktu.
Hotspotting karena peningkatan nama properti
Dalam contoh ini, peta panas dengan satu garis diagonal terang dapat menunjukkan database yang menggunakan operasi tulis/hapus indeks yang benar-benar meningkat atau menurun pada properti inkremental, seperti nomor invoice yang dibuat secara 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.
- JENIS: jenis entitas yang mengategorikan entitas.
- PROPERTI: properti yang terkait dengan entity. 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 PROPERTI untuk menemukan indeks yang terpengaruh.
Untuk menemukan indeks, selesaikan langkah-langkah berikut:
Buka halaman Indeks mode Datastore di Konsol Google Cloud.
Anda dapat mengidentifikasi jenis indeks dengan menganalisis kolom PROPERTI. Lihat contoh kunci indeks untuk mengetahui informasi selengkapnya.
Klik Filter, pilih Kolom, lalu masukkan nama kolom.
Gunakan operator OR untuk menambahkan lebih banyak properti jika menggunakan indeks komposit.
Setelah mengidentifikasi indeks yang menyebabkan masalah, Anda dapat menggunakan solusi berikut:
- Indeks bawaan: Mengecualikan properti sedemikian rupa sehingga indeks tidak mempertahankan entri indeks untuk properti tersebut. Lihat Properti yang dikecualikan untuk informasi selengkapnya.
- Indeks komposit: Ubah indeks dalam file
index.yaml
untuk memastikan kolom yang nilainya meningkat atau menurun secara monoton tidak dipilih sebagai kolom pertama untuk pengindeksan, atau hapus indeks. Lihat Tentang index.yaml untuk informasi selengkapnya.
Contoh entri kunci indeks pada peta panas
Jenis | Deskripsi | Contoh |
---|---|---|
Entri indeks bawaan | Entri indeks untuk indeks properti tunggal di 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 dalam 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 di 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 di 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'), Daftar Pengguna,1, Pengguna,5000000000000001 VALUES: (16500000000000001, 'Alice') ENTITY: KEY(PROJECT('PROJECT_ID'),NAMESPACE('NS'), Daftar Pengguna,1, Pengguna,5000000000000001) |
Entri indeks komposit dengan __key__ |
Entri indeks untuk indeks komposit di 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 urutan default hasil. |
NAMESPACE: NS KIND: Users PROPERTIES: (Timestamp: ASC, __key__ DESC) ANCESTOR: NONE VALUES: (16500000000000001) ENTITY: KEY(PROJECT('PROJECT_ID'),NAMESPACE('NS'), Daftar Pengguna,1, Pengguna,5000000000000001) |
Langkah selanjutnya
- Pelajari cara mulai menggunakan Key Visualizer.
- Cari tahu cara menjelajahi peta panas secara mendetail.
- Baca metrik yang dapat Anda lihat di peta panas.