Question

J'ai un grand nombre d'enregistrements (~ 1 milliard) que je dois charger dans mongodb (en réalité Tokumx, mais quoi que ce soit).J'ai environ 6 indices différents que je dois créer sur la collection.Est-ce toujours plus rapide de charger les données, puis de créer les indices?Lorsque je regarde le logfile de Mongo, il semble que Mongo fasse une sorte de grande opération (peut-être une rangée compte?) Avant de commencer la création d'index, et cela le fait pour chaque indice que je crée.

sera-t-il toujours plus rapide de créer les indices après avoir chargé les données?

Si j'attendais après avoir chargé les données, serez-t-il plus rapide de créer chaque index dans l'arrière-plan en même temps que d'un seul par-un?

Était-ce utile?

La solution

De retour dans la journée, nous chargons de la charge de cette manière:

  1. DROP INDESTES
  2. Chargez les données dans la commande pour laquelle l'index en clustere serait construit (c'est-à-dire que vous exportez les données de manière précise)
  3. Une fois la charge terminée, créez l'index en cluster
  4. Suivant, créez des index supplémentaires non clusters
  5. Miller Temps (c'était avant que je puisse me permettre une bière décente)

    Cette méthode a toujours été prouvée plus rapidement que de laisser les index en place.Cependant, c'était pour Sybase et SQL Server.J'imagine que d'autres systèmes seraient similaires, mais je ne peux pas dire pour certains.

Autres conseils

Si vous faites une grande opération de chargement, il est plus rapide d'utiliser le chargeur volumx de Tokumx, car il ne nécessite qu'un seul passage sur les données pour créer à la fois l'index de clé principal et les index secondaires.Plus d'informations sont disponibles dans la documentation sur http:// docs.tokutek.com / Tokumx / Tokumx-Commands.html # Tokumx-New-Command-Command-Commands-Loader

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top