Gerenciar um grande número de tabelas

O recomendador de alto número de tabelas do Cloud SQL ajuda a detectar instâncias com contagem de tabelas muito alta e próxima do limite de SLA. Depois, recomendações vão ser fornecidas sobre como otimizar essas instâncias e melhorar o desempenho delas.

Nesta página, descrevemos como recomendador de alto número de tabelas funciona e como você pode ser usado.

Como funciona

Se você tiver 50.000 ou mais tabelas de banco de dados em uma única instância, ela pode parar de responder ou de executar operações de manutenção. Além disso, a instância não vai estar coberta pelo SLA.

O recomendador de alto número de tabelas do Cloud SQL analisa métricas do número de tabelas em uma instância do MySQL do Cloud SQL. Se o número de tabelas for maior ou igual a 80% do limite de SLA, o que permite 50.000 tabelas, a instância vai ser considerada como tendo um alto número de tabelas.

Preços

O recomendador de alto número de tabelas abertas do Cloud SQL está no nível de preço Standard.

Antes de começar

Antes de visualizar as recomendações e insights, faça o seguinte:

  • Para conseguir as permissões de visualização e trabalho com insights e recomendações, verifique se você tem os papéis necessários.
    Tarefas Papéis
    Ver recomendações Um destes papéis: recommender.cloudsqlViewer ou cloudsql.viewer.
    Aplicar recomendações Um destes papéis: recommender.cloudsqlAdmin, cloudsql.editor, ou cloudsql.admin.
    Para mais informações sobre papéis, consulte Noções básicas sobre papéis e Como conceder permissões do IAM.
  • Ative a API Recommender.

    Ative a API

Listar recomendações para melhorar o desempenho da instância

É possível listar as recomendações para melhorar o desempenho da instância usando o console do Google Cloud, o gcloud CLI ou a API Recommender.

As recomendações para melhorar o desempenho da instância serão exibidas somente se você tiver instâncias que estão perto dos limites de desempenho.

Console

Para listar recomendações sobre o desempenho da instância usando o console do Google Cloud, siga estas etapas:

  1. Acesse a página Instâncias" do Cloud SQL

    Acesse "Instâncias do Cloud SQL"

  2. Clique em Ver tudo no banner de recomendações "Gerenciar um grande número de tabelas".

Ou então:

  1. Acesse o Hub de recomendações. Consulte também os Primeiros passos com o Hub de recomendações.

    Acesse o Hub de recomendações

  2. No card Melhorar o desempenho das instâncias do Cloud SQL, clique em Ver tudo.

  3. Selecione as instâncias com a recomendação Gerenciar um grande número de tabelas.

CLI da gcloud

Para listar as recomendações para melhorar o desempenho da instância usando a gcloud CLI, execute o comando gcloud recommender recommendations list da seguinte maneira:

gcloud recommender recommendations list \
--project=PROJECT_ID \
--location=LOCATION \
--recommender=google.cloudsql.instance.PerformanceRecommender \
--filter=recommenderSubtype=MYSQL_HIGH_NUMBER_OF_TABLES_BEST_PRACTICE

Substitua:

  • PROJECT_ID: o ID do projeto
  • LOCATION: uma região, como us-central1;

API

Para listar as recomendações para melhorar o desempenho da instância usando a API Recommendations, chame o método recommendations.list da seguinte maneira:

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations

Substitua:

  • PROJECT_ID: o ID do projeto
  • LOCATION: uma região, como us-central1.

Se o recomendador detectar instâncias com alto número de tabelas, elas vão ser listadas em uma tabela com outras recomendações de desempenho. Cada linha mostra o ID da instância, uma breve recomendação, o mecanismo de banco de dados, o local e a data da última atualização.

Ver insights e recomendações detalhadas

É possível visualizar insights e recomendações detalhadas sobre instâncias que têm um grande número de tabelas usando o Console do Google Cloud, gcloud CLI ou a API Recommender.

Console

Para ver insights e recomendações detalhadas sobre instâncias próximas do limite de desempenho usando o console do Google Cloud, clique no link de recomendação na lista de instâncias.

CLI da gcloud

Para ver insights e recomendações detalhadas sobre instâncias próximas do limite de desempenho usando a gcloud CLI, execute o comando gcloud recommender insights list da seguinte maneira:

gcloud recommender insights list \
--project=PROJECT_ID \
--location=LOCATION \
--insight-type=google.cloudsql.instance.PerformanceInsight \
--filter=insightSubtype=MYSQL_HIGH_NUMBER_OF_TABLES

Substitua:

  • PROJECT_ID: o ID do projeto
  • LOCATION: uma região, como us-central1.

API

Para ver insights e recomendações detalhadas sobre instâncias próximas do limite de desempenho usando a API Recommendations, chame o insights.list da seguinte forma:

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTables/insights

Substitua:

  • PROJECT_ID: o ID do projeto
  • LOCATION: uma região, como us-central1.

A tabela a seguir lista o insight e a recomendação que o recomendador de alto número de tabelas abertas do Cloud SQL gera para ajudar a melhorar o desempenho. Os subtipos estão visíveis nos resultados da gcloud CLI e da API.

Insight Recomendação
O número de tabelas nesta instância é maior ou igual a 80% do limite do SLA, que é de 50.000 tabelas.
Subtipo: MYSQL_HIGH_NUMBER_OF_TABLES
Aumente o número de tabelas para melhorar o desempenho da instância do Cloud SQL.
Subtipo: MYSQL_HIGH_NUMBER_OF_TABLES_BEST_PRACTICE

Aplicar recomendações

Avalie as recomendações com atenção e siga um destes procedimentos:

  • Para examinar a recomendação, clique em Visualizar instância. Consulte Otimizar o desempenho da instância e siga as recomendações.

  • Para dispensar a recomendação de modo que ela não seja enfatizada e apareça escurecida, clique em Dispensar.

  • Para fechar o painel sem aplicar ou dispensar a recomendação, clique em Cancelar.

Otimizar o desempenho da instância

  • Edite a instância para aumentar o número de vCPUs para pelo menos 32 núcleos e o tamanho da memória para pelo menos 200 GB. Isso aumenta o limite de tabelas da instância de 50.000 para 500.000.

  • Descarte as tabelas desnecessárias:

    DROP TABLE TABLE_NAME; 

    Substitua:

    • TABLE_NAME: nome da tabela que você pretende soltar.
  • Reduza o número de tabelas por instância dividindo o banco de dados em várias instâncias para manter o número de tabelas em cada instância dentro dos limites recomendados.

  • Se não for possível reduzir imediatamente o número de tabelas, reduza a probabilidade da instância ser afetada pela contagem alta de tabelas. Para isso, defina a sinalização innodb_file_per_table como DESATIVADA. Para desativar o valor da sinalização innodb_file_per_table, consulte Configurar uma sinalização de banco de dados. No entanto, essa configuração não leva a instância de volta à conformidade com o SLA. Veja estas diretrizes operacionais.

  • Use um espaço de tabela geral para criar ou mover tabelas atuais para um espaço de tabela geral. Para saber mais, consulte a documentação do MySQL sobre espaços de tabela gerais.

A seguir