2009-08-07 6 views
1

Disons que j'importe plusieurs fichiers csv dans mysql. Comment puis-je savoir combien d'espace j'ai besoin pour cette base de données (et pour autant que j'ai remarqué qu'il ne semble pas être la même taille que la taille des fichiers CSV)?Comment puis-je savoir de combien d'espace j'ai besoin pour la base de données mysql

+0

quel est le moteur MySQL (MyISAM, InnoDB, HEAP, etc.)? des index? des types de données spéciaux ou tous les varchars? des charsets spéciaux? combien de champs? –

+0

c'est l'installation par défaut donc je devine MyISAM? c'est juste du texte. – Phil

Répondre

7

Back of the envelope estimation combiné avec les connaissances de base de data type storage requirements.

Par exemple, le fichier CSV contient:

  • 300k clients;
  • Chaque client a un prénom, un nom de famille, une adresse et un numéro de téléphone;
  • Généralement, vous aurez besoin d'un octet par caractère (plus un) pour une chaîne;
  • Estimez qu'environ 200 caractères seront suffisants pour stocker l'information ci-dessus;
  • 300k * 200 octets = 60M de données;
  • Ajouter une surcharge d'environ 10-20% pour les index, etc;
  • Si vous anticipez la croissance, factorisez que dans maintenant. Disons que ce sera 600k dans un an;
  • 2 * 60M (doublage) * 1,2 = 144M.

Et là vous avez une estimation.

1

Juste importer par exemple. 100 lignes du CSV. vous obtiendrez une taille pour cette base de données, y compris l'espace nécessaire pour les index. maintenant vous pouvez calculer jusqu'à vos rangées estimées à partir du csv. Mais ne prenez pas ces chiffres au point, c'est juste une approximation.

1

Si vous voulez obtenir plus exact, voyez this MySQL Manual reference.

Notez que si vous utilisez des jeux de caractères tels que UTF-8 (pour Unicode), il se peut que vous ayez en moyenne plus d'un octet par caractère dans vos chaînes.

Questions connexes