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 Google Cloud 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 Google Cloud 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 Google Cloud 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 Google Cloud 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?