Pergunta

Eu tenho um grande número de registros (~ 1 bilhão) que eu preciso carregar em MongoDB (na verdade TokumX, mas seja o que for).Eu tenho cerca de 6 índices diferentes que preciso criar na coleção.É sempre mais rápido carregar os dados e, em seguida, criar os índices?Quando eu olho para o logfile de Mongo, parece que Mongo faz algum tipo de grande operação (talvez uma contagem de fileira?) Antes de realmente iniciar a criação do índice, e isso faz isso para cada índice que eu crio.

Sempre será mais rápido criar os índices depois de carregar os dados?

Se eu esperar até depois de carregar os dados, seria mais rápido criar cada índice em segundo plano ao mesmo tempo, em vez de criá-los do que um a um?

Foi útil?

Solução

De volta no dia em que voltamos a carga nossos dados desta forma:

    .
  1. Índices de queda
  2. dados de carga na ordem para a qual o índice de cluster seria construído (isto é, você exporta os dados de forma precisa)
  3. Após a carga ser concluída, crie o índice cluster
  4. próximo, crie quaisquer índices adicionais não agrupados
  5. Miller Hora (isto foi antes que eu pudesse pagar cerveja decente)

    Esse método sempre se mostrou mais rápido do que deixar os índices no lugar.No entanto, isso foi para o Sybase e o SQL Server.Eu imagino que outros sistemas fiquem semelhantes, mas não posso dizer com certeza.

Outras dicas

Se você estiver fazendo uma operação grande e de carga, é mais rápido utilizar o carregador de granel de Tokumx, pois requer apenas um passe sobre os dados para criar o índice de chave primária e quaisquer índices secundários.Mais informações estão disponíveis na documentação em http:// docs.tocutek.com / tokumx / tokumx-commands.html # tokumx-new-commands-loader

Licenciado em: CC-BY-SA com atribuição
Não afiliado a dba.stackexchange
scroll top