Questa pagina mostra esempi di pattern che potresti visualizzare nella mappa di calore di Visualizzatore di elementi chiave. Questi pattern possono aiutarti a risolvere problemi di prestazioni specifici.
Utilizzo distribuito in modo uniforme
Se una mappa termica mostra una combinazione dettagliata di colori scuri e brillanti, le operazioni di scrittura/eliminazione per le chiavi di indice sono distribuite uniformemente nel database. Questa mappa termica rappresenta probabilmente un pattern di utilizzo efficace 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. Gli indici su chiavi sequenziali non sono consigliati e possono creare hotspot. Quando attivi l'hotspot, potresti notare 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 brillante può indicare un database che utilizza operazioni di scrittura/eliminazione dell'indice in aumento o in diminuzione su una proprietà timestamp.
Hotspot dovuti all'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 comprendi la struttura della chiave dell'indice per determinare quale indice causa il problema ed esentare questi indici con le best practice.
Informazioni sulla struttura della chiave dell'indice
Prima di comprendere la struttura delle chiavi di indice visualizzate nello strumento visualizzatore delle chiavi, scopri di più sugli indici in modalità Datastore.
Il codice seguente mostra un esempio di formato della chiave dell'indice visualizzato quando passi il mouse sopra l'intervallo di chiavi 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: spazio dei nomi dell'entità.
- KIND: kind di entità che le classifica.
- PROPERTIES: 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.
- VALUES: il valore di ogni proprietà.
- ENTITY: ID dell'entità aggiornata in un'operazione.
Nell'esempio precedente, identifica le proprietà dal valore PROPERTIES per trovare l'indice interessato.
Per trovare l'indice:
Vai alla pagina Indici in modalità Datastore nella console Google Cloud.
Vai a Indici in modalità Datastore
Puoi identificare il tipo di indice analizzando il campo PROPERTIES. Per ulteriori 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.
Dopo aver identificato l'indice che causa 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. Per saperne di più, consulta la sezione Informazioni su index.yaml.
Esempi di voci della chiave dell'indice nella mappa termica
Tipo | Descrizione | Esempio |
---|---|---|
Voce dell'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 dell'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 dell'indice composto con antenato | Voce dell'indice per l'indice composto nella proprietà Timestamp in ordine decrescente e nella 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, 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 sulla proprietà Timestamp in ordine crescente e __key__ in ordine decrescente senza l'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 una mappa di calore in dettaglio.
- Scopri le metriche che puoi visualizzare in una mappa termica.