Use banco de dados na memória ou mecanismo de busca para leitura somente para tornar o site mais rápido

1

Eu tenho um aplicativo que exige muitas consultas para cada página, o que o torna mais lento.

Eu tentei usar sistemas de cache (Redis), mas a implementação é um pouco complicada e levará tempo, já que cada consulta depende de muitas dependências.

Eu estou pensando em ter outro clone de banco de dados na memória, que deve ser lido apenas, mas toda vez que a atualização ou inserção do banco de dados aconteceu, deve atualizar as linhas de memória? Você acha que isso será eficaz e prático e, se assim for, há alguma maneira atual de conseguir isso, já que estou usando postgres.

Minha segunda ideia foi usar algo como o mecanismo de busca sphinx para todas as consultas e, nesse caso, precisarei usar índices em tempo real.

Isso está funcionando ou há uma solução melhor?

Aviso: o tamanho do banco de dados é de cerca de 50 GB e posso obter memória para tudo isso.

Cumprimentos ,

    
por Devy 11.07.2015 / 20:31

1 resposta

4

Geralmente não é uma ideia inteligente. Veja, os bancos de dados são escritos por pessoas inteligentes e usam o máximo de memória possível para o armazenamento em cache. Se você acertar o disco com muita freqüência, você terá um problema de memória - e manter outra cópia na mesma memória limitada não tornará as coisas melhores.

O que alguém deve fazer é a análise de base. Qual é o gargalo? Consertá-lo. Mais memória, SSD são passos típicos aqui. Quais são as consultas mais caras? A experiência me diz que você provavelmente tem alguns martelos que causam muitos danos, e o problema não é "muitas consultas", mas "o que diabos é um índice".

Mas um banco de dados em memória normalmente não deve fazer diferença, porque um banco de dados que já vale alguma coisa já usa o máximo de memória possível. Isso é - naturalmente - a menos que algum administrador coloque um limite ridiculamente baixo para "salvar a memória" e então tenha problemas de desempenho.

E então você realmente deve começar com o cache.

    
por 11.07.2015 / 20:46