2011-04-04 2 views
0

J'ai une table InnoDB, avec beaucoup de champs, et actuellement 0.7M lignes. Maintenant, j'ai créé 3 colonnes enum et créé un index sur eux (la valeur actuelle dans la colonne est nulle). Sur chacune des colonnes, la création de l'index a pris environ 11 minutes. Est-ce prévu?mysql - créer un index prend trop de temps?

Je trouve que les requêtes sur la table prennent aussi trop de temps. Les requêtes comme la sélection de quelques colonnes de toutes les lignes avec une valeur de champ (horodatage) dans une certaine plage, prend 2-3 minutes.

Le tableau a environ 20 champs, beaucoup d'entre eux sont varchar (255), certains d'entre eux TEXT, certains entiers, etc.

La machine (un VPS) a 512 Mo de RAM et cpu 1Ghz

Fondamentalement, je veux savoir si ces temps sont inopinément longs, et si oui, alors est-ce dû à ma conception de machine ou de table.

+1

512 Mo ram et innodb? Quelle est la taille de votre cache? –

+0

Ne sait pas vraiment ... c'est un VPS (Xen), donc je suppose qu'il ne peut pas être beaucoup (le cache de cpu serait également partagé je suppose). Je ne savais pas qu'on ne devrait pas utiliser InnoDB avec 512 ram .... comment puis-je décider de combien de RAM j'ai besoin? – anon

Répondre

0

Utilisez-vous MySQL 5.1 avec le plugin InnoDb? Cela a l'indice rapide de créer des fonctionnalités.