Nesta página, mostramos exemplos de padrões que podem ser vistos em um mapa de calor do Key Visualizer. Esses padrões podem ajudar você a resolver problemas de desempenho específicos.
Uso distribuído de modo uniforme
Se um mapa de calor mostrar uma mistura refinada de cores escuras e brilhantes, as operações de gravação/exclusão para são distribuídas de maneira uniforme por todo o banco de dados. Este mapa de calor provavelmente representa um padrão de uso eficaz para o modo Datastore.
Índices em chaves sequenciais
Um mapa de calor com uma única linha diagonal clara pode indicar um índice que está em um chave que está estritamente aumentando ou diminuindo, como carimbo de data/hora. Índices ativados chaves sequenciais não são recomendadas e podem criar pontos de acesso. Ao usar o ponto de acesso, você pode observar latências elevadas correspondentes.
Confira alguns exemplos de pontos de acesso comuns no índice:
Uso do ponto de acesso devido ao aumento do carimbo de data/hora
Neste exemplo, um mapa de calor com uma única linha diagonal brilhante pode indicar um banco de dados que usa operações de gravação/exclusão de índice estritamente crescentes ou decrescentes em uma propriedade de carimbo de data/hora.
Hotspotting devido ao aumento dos nomes de propriedades
Neste exemplo, um mapa de calor com uma única linha diagonal brilhante pode indicar um banco de dados que usa operações de gravação/exclusão de índice estritamente crescentes ou decrescentes em uma propriedade incremental, como números de fatura gerados automaticamente.
Para identificar o problema de uso excessivo do ponto de acesso, use a ferramenta Key Visualizer e entenda a estrutura da chave de índice para determinar qual índice causa o problema e isentar esses índices com práticas recomendadas.
Entender a estrutura da chave de índice
Antes de entender a estrutura das chaves de índice que você vê no Key Visualizer ferramenta, saiba mais sobre índices no modo Datastore.
O código a seguir mostra um exemplo de formato de chave de índice que aparece ao passar o cursor sobre o intervalo de chaves afetado no mapa de calor.
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)
Em que:
- NAMESPACE: namespace da entidade.
- KIND: tipo de entidade que categoriza as entidades.
- PROPRIEDADES: propriedades relacionadas à entidade. A propriedade de ordenação
__key__
só é mostrada para definições de índice que modificam a ordenação padrão. - ANCESTOR: caminho ancestral opcional para localizar a entidade na hierarquia do banco de dados.
- VALUES: o valor de cada propriedade.
- ENTITY: ID da entidade atualizada em uma operação.
No exemplo anterior, identifique as propriedades em PROPERTIES para encontrar o índice afetado.
Para encontrar o índice, siga estas etapas:
Acesse a página Índices do modo Datastore no console do Google Cloud.
Acessar os índices do modo Datastore
Você pode identificar o tipo de índice analisando o PROPERTIES. Consulte exemplos de chaves de índice para mais informações.
Clique em Filtrar, selecione Campos e digite o nome do campo.
Use o operador OR para adicionar mais propriedades no caso de índices compostos.
Depois de identificar o índice que está causando problemas, use estas soluções:
- Índice integrado: exclui a propriedade de modo que o índice não mantenha o índice. de índice dessa propriedade. Consulte Propriedades excluídas para mais informações.
- Índice composto: modifique o índice no arquivo
index.yaml
para garantir que o campo cujo valor aumenta ou diminui monotonicamente não seja selecionado como o primeiro campo para indexação ou exclua o índice. Consulte Sobre o index.yaml para mais informações.
Exemplos de entradas de chaves de índice no mapa de calor
Tipo | Descrição | Exemplo |
---|---|---|
Entrada de índice integrada | Entrada de índice para o índice de propriedade única na propriedade Timestamp , em ordem decrescente para o namespace NS . |
NAMESPACE: NS KIND: Users PROPERTIES: (Timestamp: DESC) ANCESTOR: NONE VALUES: (16500000000000001) ENTITY: KEY(PROJECT('PROJECT_ID'), NAMESPACE('NS'), Usuários, 5000000000000001) |
Entrada de índice integrada | Entrada de índice para o índice de propriedade única no namespace padrão. | NAMESPACE: ' ' KIND: Users PROPERTIES: (Timestamp: DESC) ANCESTOR: NONE VALUES: (16500000000000001) ENTITY: KEY(PROJECT('PROJECT_ID'), NAMESPACE('NS'), Usuários, 5000000000000001) |
Entrada de índice composto | Entrada de índice para o índice composto na propriedade Timestamp e na propriedade Name em ordem decrescente sem o ancestral ativado. |
NAMESPACE: NS KIND: Users PROPERTIES: (Timestamp: DESC, Name: DESC) ANCESTOR: NONE VALUES: (16500000000000001, 'Alice') ENTITY: KEY(PROJECT('PROJECT_ID'),NAMESPACE('NS'), Usuários,5000000000000001) |
Entrada de índice composto com ancestral | Entrada de índice do índice composto na propriedade Timestamp em ordem decrescente e a propriedade Name em ordem decrescente com ancestral ativado. |
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) |
Entrada de índice composto com __key__ |
Entrada de índice para o índice composto na propriedade Timestamp em ordem crescente e __key__ em ordem decrescente sem o ancestral ativado. Use __key__ como a propriedade final em uma definição de índice para mudar a ordem padrão dos resultados. |
NAMESPACE: NS KIND: Users PROPERTIES: (Timestamp: ASC, __key__ DESC) ANCESTOR: NONE VALUES: (16500000000000001) ENTITY: KEY(PROJECT('PROJECT_ID'),NAMESPACE('NS'), UserList,1, User,5000000000000001) |
A seguir
- Veja os primeiros passos do Key Visualizer.
- Descubra como explorar um mapa de calor em detalhes.
- Leia sobre as métricas exibidas em um mapa de calor.