Domanda

Ho un gran numero di record (~ 1 miliardo) che ho bisogno di caricare in mongodb (in realtà Tokumx, ma qualunque cosa).Ho circa 6 indici diversi che ho bisogno di creare sulla collezione.È sempre più veloce caricare i dati e quindi creare gli indici?Quando guardo il logfile di Mongo, sembra che il mongo faccia una specie di grande operazione (forse un conteggio di riga?) Prima di iniziare la creazione dell'indice, e lo fa per ogni indice che creo.

Sarà sempre più veloce creare gli indici dopo aver caricato i dati?

Se aspetti che dopo aver caricato i dati, sarebbe più veloce creare ciascun indice in background allo stesso tempo, piuttosto crearli di uno-by-one?

È stato utile?

Soluzione

Di nuovo nel giorno in cui avremmo caricato i nostri dati in questo modo:

    .
  1. drop indici
  2. Carica i dati nell'ordine per il quale sarebbe stato costruito l'indice cluster (I.e., si esporta i dati in modo preciso)
  3. Dopo aver completato il carico, creare l'indice cluster
  4. Avanti, crea eventuali indici aggiuntivi non cluster
  5. Miller Time (questo era prima che potessi permettermi birra decente)

    Quel metodo si è sempre dimostrato più velocemente di lasciare gli indici in posizione.Tuttavia, questo era per Sybase e SQL Server.Immagino che altri sistemi sarebbero simili, ma non posso dire per certo.

Altri suggerimenti

Se si sta facendo un ampio funzionamento del carico è più veloce utilizzare il caricatore di bulk tokumx, poiché richiede solo un passaggio sui dati per creare sia l'indice chiave primario che qualsiasi indice secondario.Ulteriori informazioni sono disponibili nella documentazione presso http:// docs.tokutek.com / tokumx / tokumx-commands.html # tokumx-new-comandi-caricatore

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top