Preciso criar uma tabela para cache no banco de dados postgresql. As transações devem ser o mais rápidas possível, então pensei em criar uma tabela não registrada e ter um disco RAM como espaço de tabela.
Há um aviso na documentação oficial do postgresql :
Colocar um espaço de tabela em um sistema de arquivos temporário, como um disco RAM, coloca em risco a confiabilidade de todo o cluster.
Eu sei que as tabelas não registradas não são replicadas para o modo de espera e não há problema em armazenar dados não persistentes nessa tabela. Então, em caso de acidente, estou bem em perdê-lo. Aqui está uma pergunta:
- Afinal, é seguro colocar um espaço de tabela no disco RAM nesta configuração? (não registrado + espaço de tabela do disco RAM + dados não persistentes)
- Se for uma opção segura, devo criar um disco RAM em uma réplica também, já que a criação do espaço de tabela será armazenada em algum lugar no wal?
Estou usando o EDB 13.9.13 com replicação de streaming. Se isso funcionar, farei o mesmo para o Postgresql v14.7
Não, isso não está bem. Após reiniciar a máquina, você receberá erros desagradáveis ao tentar acessar a tabela. Você provavelmente poderá descartar e recriar a tabela se receber erros desagradáveis, mas como distinguir com segurança esses erros desagradáveis de outros erros desagradáveis que realmente são um problema?
Acho que esta é uma tentativa exagerada de otimizar algo que não precisa disso. Basta fornecer RAM suficiente à sua máquina e a tabela não registrada será armazenada em cache na RAM de qualquer maneira, se for usada com frequência suficiente.