AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 78242
Accepted
Alexandros
Alexandros
Asked: 2014-10-03 06:55:57 +0800 CST2014-10-03 06:55:57 +0800 CST 2014-10-03 06:55:57 +0800 CST

PostgreSQL maximiza o desempenho do SSD

  • 772

Terei um enorme banco de dados PostgreSQL 9.3 com muitas tabelas com mais de 100M de entradas por tabela. Este banco de dados será basicamente somente leitura (uma vez que eu preencha todas as tabelas necessárias e construa os índices, não haverá mais operações de gravação no banco de dados) e acesso de usuário único (executar e fazer benchmark de várias consultas do localhost), pois o banco de dados será usado apenas para fins de pesquisa. As consultas sempre usarão JOIN em campos de banco de dados inteiros.

Provavelmente comprarei um SSD (256-512 GB) para esse fim. Eu não usei um SSD para um banco de dados antes, então há algo que eu deveria ter medo? Posso colocar o banco de dados inteiro no SSD ou apenas os índices? Existe algum conselho / tutorial específico necessário para ajustar o PostgreSQL para SSDs? Observe que eu tenho uma boa estação de trabalho com um i7 e 32 Gb de RAM, então talvez você possa oferecer alguns conselhos também.

postgresql postgresql-9.3
  • 2 2 respostas
  • 27470 Views

2 respostas

  • Voted
  1. slardiere
    2014-10-03T07:15:03+08:002014-10-03T07:15:03+08:00

    Sobre SSDs, o conselho principal é diminuir 'random_page_cost' para 1 (igual a 'seq_page_cost') no postgresql.conf, além de outras configurações usuais.

    • 21
  2. Best Answer
    Craig Ringer
    2014-10-03T08:03:46+08:002014-10-03T08:03:46+08:00

    então há alguma coisa que eu deveria ter medo?

    Não ter backups. Como qualquer dispositivo de armazenamento, ele pode morrer. Mantenha backups.

    Se o carregamento de dados demorar muito, eu faria backup do banco de dados somente leitura depois de fazer o carregamento de dados, parando-o e copiando-o. Dessa forma, se algo der errado, seria mais fácil recriar mais tarde.

    Posso colocar o banco de dados inteiro no SSD ou apenas os índices?

    Se couber, armazene o banco de dados inteiro.

    Se isso não acontecer, coloque um espaço de tabela no SSD e use-o para armazenar os índices e quantas tabelas muito consultadas couberem.

    Existe algum conselho / tutorial específico necessário para ajustar o PostgreSQL para SSDs?

    A maioria dos benefícios dos SSDs são para cargas de gravação OLTP. A principal vantagem para cargas somente leitura é a busca rápida, e o slardiere cobriu isso.

    Você pode querer definir effective_io_concurrency = 5ou algo para refletir o fato de que os SSDs podem fazer leituras aleatórias rápidas e com pipeline ... mas isso afeta apenas as varreduras de índice de bitmap e, na prática, random_page_costjá incorpora isso.

    Para uma carga somente leitura, não faz muita diferença.

    Para o carregamento de dados inicial, consulte:

    • https://stackoverflow.com/q/12206600/398670
    • https://stackoverflow.com/q/758945/398670
    • https://stackoverflow.com/q/9407442/398670

    Observe que eu tenho uma boa estação de trabalho com um i7 e 32 Gb de RAM, então talvez você possa oferecer alguns conselhos também.

    Defina um big maintenance_work_mempara a carga de dados. Eu usaria pelo menos 8GB.

    Defina um valor grande work_mempara o trabalho de consulta. O tamanho apropriado depende um pouco da complexidade da consulta. Comece 500MBe suba a partir daí.

    Aumente o seu checkpoint_segments(massivamente) para o carregamento de dados inicial.

    Lembre-se de desabilitar o overcommit da VM! (veja o manual do PostgreSQL: http://www.postgresql.org/docs/current/static/kernel-resources.html )

    • 19

relate perguntas

  • Posso ativar o PITR depois que o banco de dados foi usado

  • Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo

  • Os procedimentos armazenados impedem a injeção de SQL?

  • Sequências Biológicas do UniProt no PostgreSQL

  • Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve