2010-06-22 17 views

Répondre

5

Généralement, oui. Si vous faites un ORDER BY sur ce champ, il devrait probablement être indexé. Bien sûr, vous aurez envie de le tester en premier pour vous assurer que cela aide réellement - si vous sélectionnez seulement un petit nombre de lignes, cela ne fera peut-être pas beaucoup de différence.

4

Pensez-vous honnêtement avoir une valeur sort_order que maxes out at 9,223,372,036,854,775,807?! En supposant zéro basé, INT est encore assez grand à un maximum de 2.147.483.647 ...

Dépend de vos requêtes, mais je regarderais de l'utiliser dans un index de couverture avant un seul. MySQL has a space limit on indexes, vous êtes susceptible de heurter le plafond si vous définissez un index par colonne:

support et Prefix longueurs des préfixes (où supportés) dépendent du moteur de stockage. Par exemple, un préfixe peut contenir jusqu'à 1000 octets pour les tables MyISAM et 767 octets pour les tables InnoDB.

2

Comme Eric déjà mentionné ci-dessus, la réponse est Oui. Bien que, si vous effectuez beaucoup d'insertions et de mises à jour dans la table, MySQL crée un bloc d'informations séparé pour l'indexation qui doit être mis à jour chaque fois que des modifications sont apportées à la table. Ainsi, les frais généraux peuvent être là dans certains cas.

Donc, fondamentalement, c'est un cas mélangé et les circonstances doivent toujours être prises en compte.

2

Généralement, non. Vous justifiez les index avec des recherches. Au moment où vous avez réduit le nombre d'enregistrements au nombre que vous affichez normalement (disons, moins de plusieurs centaines) avoir un index ne vous achète rien.

Alors ajoutez seulement un index si vous utiliserez le champ de sélection (qui comprendrait, par exemple, « LIMIT 500 », par exemple.)

+0

Même avec recordsets limité, il y a des magasins qui veulent chaque bit de la performance qu'ils peut obtenir. –

+0

C'est presque sûr d'être une perte nette. Le "ORDER BY" ne bénéficie pas si l'ensemble est petit; et maintenir l'index est un surdébit pur. – dkretz

+0

"Généralement, non" ne couvrirait pas le cas où une lecture de table complète est nécessaire et une lecture ordonnée est bénéfique ou même nécessaire? – Harald