Faça a gestão de um número elevado de tabelas

O recomendador de número elevado de tabelas do Cloud SQL ajuda a detetar instâncias cujo número de tabelas é demasiado elevado e está perto do limite do SLA. Em seguida, fornece recomendações sobre como otimizar essas instâncias e melhorar o desempenho das instâncias.

Esta página descreve como funciona o recomendador de um número elevado de tabelas e como o pode usar.

Como funciona

Se tiver 50 000 ou mais tabelas de base de dados numa única instância, a instância pode deixar de responder ou não conseguir realizar operações de manutenção, e a instância não é abrangida pelo SLA.

O recomendador de número elevado de tabelas do Cloud SQL analisa as métricas do número de tabelas numa instância do Cloud SQL MySQL. Se o número de tabelas for superior ou igual a 80% do limite do SLA, que permite 50 000 tabelas, considera-se que a instância tem um número elevado de tabelas.

Preços

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

Antes de começar

Antes de poder ver recomendações e estatísticas, faça o seguinte:

  • Para receber as autorizações para ver e trabalhar com estatísticas e recomendações, certifique-se de que tem as funções necessárias.
    Tasks Funções
    Ver recomendações Uma destas funções: recommender.cloudsqlViewer ou cloudsql.viewer.
    Aplique recomendações Uma destas funções: recommender.cloudsqlAdmin, cloudsql.editor ou cloudsql.admin.
    Para mais informações sobre funções, consulte os artigos Compreender as funções e Conceder autorizações de IAM.
  • Enable the Recommender API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

Apresente recomendações para melhorar o desempenho das instâncias

Pode listar as recomendações de melhoria do desempenho da instância através da Cloud de Confiance consolagcloud CLI ou da API Recommender.

As recomendações para melhorar o desempenho das instâncias são apresentadas apenas se tiver instâncias que se estejam a aproximar dos limites do limite de desempenho.

Consola

Para ver recomendações sobre o desempenho das instâncias através da Cloud de Confiance consola, siga estes passos:

  1. Aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  2. Clique em Ver tudo na faixa de recomendações de gestão de um número elevado de tabelas.

Em alternativa, siga estes passos:

  1. Aceda ao Active Assist. Consulte também o artigo Começar a usar o Centro de Recomendações.

    Aceda ao Active Assist

  2. No cartão Melhore o desempenho da instância do Cloud SQL, clique em Ver tudo.

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

CLI gcloud

Para apresentar uma lista de recomendações de melhoria do desempenho das instâncias através de gcloud CLI, execute o comando gcloud recommender recommendations list da seguinte forma:

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

Substitua o seguinte:

  • PROJECT_ID: o ID do seu projeto
  • LOCATION: Uma região, como us-central1

API

Para apresentar uma lista de recomendações de melhoria do desempenho das instâncias através da API Recommendations, chame o método recommendations.list da seguinte forma:

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

Substitua o seguinte:

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

Se o motor de recomendações detetar instâncias com um número elevado de tabelas, apresenta-as numa tabela com outras recomendações de desempenho. Cada linha mostra o ID da instância, uma breve recomendação, o motor da base de dados, a localização e a data da última atualização.

Veja estatísticas e recomendações detalhadas

Pode ver estatísticas e recomendações detalhadas sobre instâncias com um número elevado de tabelas através da Cloud de Confiance consolagcloud CLI ou da API Recommender.

Consola

Para ver estatísticas e recomendações detalhadas sobre instâncias que estão perto do limite de desempenho através da Cloud de Confiance consola, clique no link de recomendação na lista de instâncias.

CLI gcloud

Para ver estatísticas e recomendações detalhadas sobre instâncias que estão perto do limite de desempenho através de gcloud CLI, execute o comando gcloud recommender insights list da seguinte forma:

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

Substitua o seguinte:

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

API

Para ver estatísticas e recomendações detalhadas sobre instâncias que estão perto do limite de desempenho através da API Recommendations, chame o método insights.list da seguinte forma:

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

Substitua o seguinte:

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

A tabela seguinte apresenta a estatística e a recomendação que o recomendador high-number-of-open-tables do Cloud SQL gera para ajudar a melhorar o desempenho. Os subtipos são visíveis nos resultados da gcloud CLI e da API.

Insight Recomendação
O número de tabelas nesta instância é igual ou superior a 80% do limite do SLA, que é de 50 000 tabelas.
Subtype: MYSQL_HIGH_NUMBER_OF_TABLES
Melhore o desempenho da instância do Cloud SQL reduzindo o número de tabelas.
Subtype: MYSQL_HIGH_NUMBER_OF_TABLES_BEST_PRACTICE

Aplique recomendações

Avalie cuidadosamente as recomendações e faça uma das seguintes ações:

  • Para examinar a instância, clique em Ver instância. Consulte o artigo Otimize o desempenho da sua instância e siga as recomendações.

  • Para ignorar a recomendação de modo que seja desvalorizada e apareça esbatida, clique em Ignorar.

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

Otimize o desempenho da sua instância

  • Edite a sua 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. Isto aumenta o limite de tabelas da instância de 50 000 para 500 000.

  • Elimine tabelas desnecessárias:

    DROP TABLE TABLE_NAME; 

    Substitua o seguinte:

    • TABLE_NAME: nome da tabela que pretende eliminar.
  • Reduza o número de tabelas por instância dividindo a base 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 puder reduzir imediatamente o número de tabelas, pode reduzir a probabilidade de a sua instância ser afetada pela elevada quantidade de tabelas definindo a flag innodb_file_per_table como DESATIVADA. Para desativar o valor da flag innodb_file_per_table, consulte o artigo Configure uma flag de base de dados. No entanto, esta definição não repõe a instância em conformidade com o SLA. Consulte estas diretrizes operacionais.

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

O que se segue?