Ajuste de desempenho do RDS for MySQL – resolução de problemas de armazenamento insuficiente
O uso de armazenamento é uma métrica importante para medir o desempenho de suas instâncias de BD. Se o espaço de armazenamento disponível for insuficiente, sua instância de banco de dados poderá encontrar sérios problemas. Por exemplo, os dados não podem ser copiados ou gravados em bancos de dados, ou a expansão do armazenamento leva um longo período de tempo.
Exibir o uso do espaço de armazenamento
- Na página Basic Information, você pode ver quanto espaço de backup e armazenamento de instância foi usado. No entanto, esta página não fornece detalhes sobre quais tipos diferentes de dados estão sendo armazenados.
- Para exibir o histórico de uso e as alterações ao longo do tempo, clique em View Metrics na página Basic Information.
Armazenamento insuficiente causado por índices excessivos
Armazenamento insuficiente causado por grandes campos
Armazenamento insuficiente causado por tablespaces ociosos excessivos
- Causa e sintoma
Se a taxa de fragmentação de uma tabela InnoDB for alta, haverá um número excessivo de tablespaces ociosos. O InnoDB gerencia tablespaces por página. Se alguns registros de uma página inteira forem excluídos e nenhum novo registro for inserido nas posições das quais esses registros foram excluídos, um grande número de tablespaces ficará ocioso.
- Solução
Run the show table status like '<Name of the table>'; command to query idle tablespaces. Se houver muitos tablespaces, execute o comando optimize table '<Name of the table>'; para gerenciar os tablespaces.
Armazenamento insuficiente causado por tabelas temporárias excessivamente grandes
- Causa e sintoma
Quando você executa uma operação de semi-junção, distinta ou de classificação sem usar um índice em uma tabela, uma tabela temporária é criada. Se a tabela temporária contiver uma quantidade excessiva de dados, o uso de armazenamento da tabela temporária poderá ser excessivamente alto.
Quando você executa instruções de linguagem de definição de dados (DDL) para reconstruir tablespaces usados para armazenar os dados de uma tabela grande, a tabela temporária que é gerada a partir de uma operação de classificação baseada em índice também será grande. Se sua instância de BD executar o MySQL 5.6 ou MySQL 5.7, você não poderá adicionar campos imediatamente, e algumas instruções DDL poderão ser executadas apenas em novas tabelas. Se você enviar solicitações para executar essas instruções DDL em uma tabela, o RDS criará uma nova tabela e executará essas instruções DDL na nova tabela. A nova tabela é uma réplica da tabela original. Nessa situação, você acaba com duas cópias dos arquivos quando essas instruções DDL estão sendo executadas. Depois que essas instruções DDL são executadas, a tabela original é excluída.
- Solução
Visualize os planos nos quais as instruções DDL foram baseadas. Verifique se o campo Using Temporary foi especificado.
Antes de executar instruções DDL em tabelas grandes, verifique se sua instância de BD oferece espaço de armazenamento suficiente. Se o espaço de armazenamento disponível for insuficiente, aumente o espaço de armazenamento da sua instância de BD antes de executar as instruções.