Questa pagina mostra esempi di pattern che potresti vedere in una mappa termica di Key Visualizer. Questi pattern possono aiutarti a risolvere problemi specifici di rendimento.
Utilizzo distribuito in modo uniforme
Se una mappa termica mostra un mix granulare di colori scuri e chiari, le operazioni di scrittura/eliminazione per le chiavi di indice sono distribuite uniformemente nel database. Questa mappa termica probabilmente rappresenta un pattern di utilizzo efficace per la modalità Datastore.
Indici sulle chiavi sequenziali
Una mappa termica con una singola linea diagonale luminosa può indicare un indice su una chiave che aumenta o diminuisce rigorosamente, ad esempio il timestamp. Gli indici sulle chiavi sequenziali non sono consigliati e possono creare hotspot. Quando usi l'hotspot, potresti notare latenze elevate corrispondenti.
Di seguito sono riportati alcuni esempi di hotspot comuni sull'indice:
Hotspotting dovuto all'aumento del timestamp
In questo esempio, una mappa termica con una singola linea diagonale luminosa può indicare un database che utilizza operazioni di scrittura/eliminazione dell'indice strettamente crescenti o decrescenti su una proprietà timestamp.
Hotspotting dovuto all'aumento dei nomi delle proprietà
In questo esempio, una mappa termica con una singola linea diagonale luminosa può indicare un database che utilizza operazioni di scrittura/eliminazione dell'indice strettamente crescenti o decrescenti su una proprietà incrementale, ad esempio i numeri di fattura generati automaticamente.
Per identificare il problema di hotspotting, utilizza lo strumento Key Visualizer e comprendi la struttura della chiave di indice per determinare quale indice causa il problema ed esenta questi indici con le best practice.
Comprendere la struttura della chiave di indice
Prima di comprendere la struttura delle chiavi di indice visualizzate nello strumento Key Visualizer, scopri di più sugli indici in modalità Datastore.
Il seguente codice mostra un esempio di formato della chiave di indice visualizzato quando passi il mouse sopra l'intervallo di chiavi interessato nella mappa termica.
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)
Dove:
- NAMESPACE: lo spazio dei nomi dell'entità.
- KIND: il tipo di entità che le classifica.
- PROPRIETÀ: proprietà correlate all'entità. La proprietà di ordinamento
__key__
viene mostrata solo per le definizioni di indice che modificano l'ordinamento predefinito. - ANCESTOR: (facoltativo) percorso dell'antenato per individuare l'entità all'interno della gerarchia del database.
- VALORI: valore di ogni proprietà.
- ENTITY: ID dell'entità aggiornata in un'operazione.
Dall'esempio precedente, identifica le proprietà dal valore PROPERTIES per trovare l'indice interessato.
Per trovare l'indice, completa i seguenti passaggi:
Vai alla pagina Indici della modalità Datastore nella console Google Cloud .
Vai agli indici della modalità Datastore
Puoi identificare il tipo di indice analizzando il campo PROPERTIES. Per maggiori informazioni, consulta gli esempi di chiavi di indice.
Fai clic su Filtro, seleziona Campi e inserisci il nome del campo.
Utilizza l'operatore OR per aggiungere altre proprietà in caso di indici compositi.
Una volta identificato l'indice che causa problemi, puoi utilizzare le seguenti soluzioni:
- Indice incorporato: escludi la proprietà in modo che l'indice non mantenga voci di indice per quella proprietà. Per ulteriori informazioni, consulta la sezione Proprietà escluse.
- Indice composito: modifica l'indice nel file
index.yaml
per assicurarti che il campo il cui valore aumenta o diminuisce monotonicamente non sia selezionato come primo campo per l'indicizzazione oppure elimina l'indice. Per saperne di più, consulta la sezione Informazioni su index.yaml.
Esempi di voci della chiave di indice sulla mappa termica
Tipo | Descrizione | Esempio |
---|---|---|
Voce di indice integrata | Voce di indice per l'indice di una singola proprietà nella proprietà Timestamp , in ordine decrescente per lo spazio dei nomi NS . |
NAMESPACE: NS KIND: Users PROPERTIES: (Timestamp: DESC) ANCESTOR: NONE VALUES: (16500000000000001) ENTITY: KEY(PROJECT('PROJECT_ID'), NAMESPACE('NS'), Utenti, 5000000000000001) |
Voce di indice integrata | Voce di indice per l'indice di una singola proprietà nello spazio dei nomi predefinito. | NAMESPACE: ' ' KIND: Users PROPERTIES: (Timestamp: DESC) ANCESTOR: NONE VALUES: (16500000000000001) ENTITY: KEY(PROJECT('PROJECT_ID'), NAMESPACE('NS'), Utenti, 5000000000000001) |
Voce dell'indice composto | Voce di indice per l'indice composto sulla proprietà Timestamp e sulla proprietà Name in ordine decrescente senza antenato abilitato. |
NAMESPACE: NS KIND: Users PROPERTIES: (Timestamp: DESC, Name: DESC) ANCESTOR: NONE VALUES: (16500000000000001, 'Alice') ENTITY: KEY(PROJECT('PROJECT_ID'),NAMESPACE('NS'), Utenti,5000000000000001) |
Voce di indice composto con elemento principale | Voce di indice per l'indice composto sulla proprietà Timestamp in ordine decrescente e sulla proprietà Name in ordine decrescente con l'antenato abilitato. |
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) |
Voce di indice composto con __key__ |
Voce di indice per l'indice composto sulla proprietà Timestamp in ordine crescente e sulla proprietà __key__ in ordine decrescente senza antenato abilitato. Puoi utilizzare __key__ come proprietà finale in una definizione di indice per modificare l'ordinamento predefinito dei risultati. |
NAMESPACE: NS KIND: Users PROPERTIES: (Timestamp: ASC, __key__ DESC) ANCESTOR: NONE VALUES: (16500000000000001) ENTITY: KEY(PROJECT('PROJECT_ID'),NAMESPACE('NS'), UserList,1, User,5000000000000001) |
Passaggi successivi
- Scopri come iniziare a utilizzare Key Visualizer.
- Scopri come esplorare in dettaglio una mappa termica.
- Scopri di più sulle metriche che puoi visualizzare in una mappa termica.