Questa pagina mostra esempi di pattern che potresti vedere in un Key Visualizer mappa termica. Questi pattern possono aiutarti a risolvere problemi di prestazioni specifiche che le applicazioni presentino problemi di prestazioni.
Utilizzo distribuito in modo uniforme
Se una mappa termica mostra una combinazione granulare di colori scuri e chiari, le operazioni di scrittura/eliminazione per le chiavi indice sono distribuite uniformemente in tutto il database. È probabile che questa mappa termica rappresenta un pattern di utilizzo effettivo per la modalità Datastore.
Indici su chiavi sequenziali
Una mappa termica con una singola linea diagonale brillante può indicare un indice su una chiave in aumento o in diminuzione, ad esempio il timestamp. Indici attivati Le chiavi sequenziali non sono consigliate e possono creare hotspot. Durante l'hotspot, potresti osservare latenze elevate corrispondenti.
Di seguito sono riportati alcuni esempi di hotspot comuni nell'indice:
Hotspot a causa dell'aumento del timestamp
In questo esempio, una mappa termica con una singola linea diagonale luminosa può indicare una database che utilizza operazioni di scrittura/eliminazione dell'indice rigorosamente in aumento o in diminuzione su un timestamp proprietà.
Hotspot a causa dell'aumento dei nomi delle proprietà
In questo esempio, una mappa termica con una singola linea diagonale brillante può indicare un database che utilizza operazioni di scrittura/eliminazione dell'indice strettamente in aumento o in diminuzione in una proprietà incrementale, ad esempio i numeri di fattura generati automaticamente.
Per identificare il problema di hotspot, utilizza lo strumento Key Visualizer e approfondisci la chiave di indice per determinare quale indice causa il problema ed escludere gli indici. con le best practice.
Informazioni sulla struttura della chiave dell'indice
Prima di comprendere la struttura delle chiavi di indice che vedi in Key Visualizer , scopri di più sugli indici in modalità Datastore.
Il seguente codice mostra un esempio di formato di chiave indice che viene visualizzato quando passi il mouse sopra sopra l'intervallo di tasti interessato sulla 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: kind di entità che le classifica.
- PROPRIETÀ: proprietà correlate all'entità. La proprietà di ordinamento
__key__
viene mostrata solo per le definizioni di indici che modificano l'ordinamento predefinito. - ANCESTOR: percorso dell'antenato facoltativo per individuare l'entità all'interno della gerarchia del database.
- VALORI: il valore di ogni proprietà.
- ENTITY: ID dell'entità aggiornato in un'operazione.
Nell'esempio precedente, identifica le proprietà nella sezione PROPERTIES. per trovare l'indice interessato.
Per trovare l'indice, svolgi i seguenti passaggi:
Vai alla pagina Indici in modalità Datastore nella console Google Cloud.
Vai agli indici in modalità Datastore
Puoi identificare il tipo di indice analizzando il PROPERTIES. Per ulteriori informazioni, consulta gli esempi di chiavi indice informazioni.
Fai clic su Filtra, seleziona Campi e inserisci il nome del campo.
Utilizza l'operatore OR per aggiungere altre proprietà in caso di indici composti.
Dopo aver identificato l'indice che causa i problemi, puoi utilizzare le seguenti soluzioni:
- Indice integrato: escludi la proprietà in modo che l'indice non gestisca le voci dell'indice per quella proprietà. Per saperne di più, 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. Consulta: Informazioni su index.yaml per ulteriori informazioni.
Esempi di voci della chiave dell'indice nella mappa termica
Tipo | Descrizione | Esempio |
---|---|---|
Voce di indice integrata | Voce dell'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 dell'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 dell'indice per l'indice composto nella proprietà Timestamp e nella proprietà Name in ordine decrescente senza l'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 predecessore | Voce di indice per l'indice composto nella proprietà Timestamp in ordine decrescente e per la proprietà Name in ordine decrescente con il predecessore abilitato. |
NAMESPACE: NS KIND: Users PROPERTIES: (Timestamp: DESC, Name: ASC) ANCESTOR: KEY(PROJECT('PROJECT_ID'),NAMESPACE('NS'), UserList,1, Utente,5000000000000001 VALUES: (16500000000000001, 'Alice') ENTITY: KEY(PROJECT('PROJECT_ID'),NAMESPACE('NS'), UserList,1, Utente,5000000000000001) |
Voce dell'indice composto con __key__ |
Voce dell'indice per l'indice composto nella proprietà Timestamp in ordine crescente e __key__ in ordine decrescente senza predecessore attivato. 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 una mappa di calore in dettaglio.
- Scopri le metriche che puoi visualizzare in una mappa termica.