Precisa carregar todo o banco de dados PostgreSQL na RAM

votos
17

Como faço para colocar todo o meu banco de dados PostgreSQL na RAM para um acesso mais rápido ?? Eu tenho memória de 8GB e Quero dedicar 2 GB para o DB. Eu li sobre as configurações de buffers compartilhados, mas ele só armazena em cache o fragmento mais acessados ​​do banco de dados. Eu precisava de uma solução onde toda a DB é colocado na RAM e qualquer leitura que aconteceria a partir da RAM DB e qualquer operação de gravação em primeiro lugar escrever na RAM DB e, em seguida, o DB no disco rígido. (Alguma coisa como o fsync default = com buffers compartilhados em definições de configuração PostgreSQL).

Publicado 02/01/2009 em 16:04
fonte usuário
Em outras línguas...                            


5 respostas

votos
0

Talvez algo como um cache de Tangosol Coerência se você estiver usando Java.

Respondeu 02/01/2009 em 16:09
fonte usuário

votos
4

Já me perguntei a mesma pergunta por um tempo. Uma das desvantagens do PostgreSQL é que ele não parece apoiar um mecanismos de armazenamento na memória como o MySQL faz ...

De qualquer forma eu corri para um artigo par de semanas atrás que descrevem como isso poderia ser feito; embora só parece funcionar no Linux. Eu realmente não posso garantir isso porque eu não tentei me, mas parece fazer sentido uma vez que a tabela PostgreSQL é realmente atribuído um repositório montado.

No entanto, mesmo com esta abordagem, eu não tenho certeza que você pode colocar seu índice (s) para a RAM também; Eu não acho que o uso de índice MySQL forças HASH com a sua mesa na memória para nada ...

Eu também queria fazer uma coisa semelhante para melhorar o desempenho para que eu também estou trabalhando com grandes conjuntos de dados. Eu estou usando python; eles têm tipos de dados de dicionário, que são basicamente tabelas hash na forma de {chave: valor} pares. Usando estas é muito eficiente e eficaz. Basicamente, para obter minha mesa PostgreSQL na RAM, eu carregá-lo em tal dicionário python, trabalhar com ele, e persistem-lo em db vez em quando; vale a pena se for bem usado.

Se você não estiver usando python, eu tenho certeza que a sua é uma estrutura semelhante dicionário de dados de mapeamento no seu idioma.

Espero que isto ajude!

Respondeu 04/01/2009 em 07:29
fonte usuário

votos
0

Com apenas um banco de dados 8GB, se você já otimizado toda a atividade SQL e você está pronto resolver problemas de consulta com hardware, eu sugiro que você está em apuros. Este não é apenas uma solução escalável no longo prazo. Tem certeza que não há nada que você pode fazer para tornar diferenças substanciais no lado de design de software e banco de dados?

Respondeu 04/01/2009 em 07:59
fonte usuário

votos
2

se você está puxando os dados de identificação, usar memcached - http://www.danga.com/memcached/ + PostgreSQL.

Respondeu 14/01/2009 em 16:07
fonte usuário

votos
0

Configurar uma RAMdisk antiquado e dizer pg para armazenar seus dados lá.

Certifique-se de guardá-lo bem embora.

Respondeu 02/06/2009 em 23:33
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more