MYSQL: varchar vs int pour stocker une variable
Pour des raisons de lisibilité, je voudrais stocker une variable de type varchar comme "dans", "", "auto" au lieu d'un int comme "0", "1", "2". Existe-il des raisons pourquoi je ne devrais pas le stocker en tant que varchar?
La raison pour laquelle je demande, c'est que j'ai entendu dire que l'int est plus rapide, mais cela s'applique dans ce scénario ou la différence de vitesse d'être si petit qu'il est négligeable?
Je suis tout à fait nouveau pour MYSQL, donc s'il vous plaît laissez-moi savoir si vous avez besoin de plus d'informations, j'ai cherché, pour de semblables questions/réponses, mais n'ai pas trouvé de réponse à ma question.
vous pouvez utiliser enum trop. Beaucoup diront que smallint 1 est idéal pour cela, mais à moins que vous envisagez de migrer vers quelques autres db, vous devez être bien avec enum ou varchar. Peu probable que vous remarquerez un décalage
Je pense que vous avez répondu vous-même, quand faut-il faire une différence. Cela dépend de combien grande est ur la base de données
Juste à carillon, la différence de vitesse ne sera probablement pas le même registre. C'est moins que négligeable, parce que c'est probablement moins que le quantum de la longueur de la CPU, de sorte qu'il ne va pas prendre des cycles à l'écart des autres processus, y compris lui-même.
À quel point pensez-vous que cela ferait une différence? E. g. si j'ai dû trier 100 colonnes qui contiennent "" au lieu de chercher à "0" y aurait-il beaucoup de différence? Ou aurait-il à 1000, 10000, etc pour être perceptible?
Je pense que vous avez répondu vous-même, quand faut-il faire une différence. Cela dépend de combien grande est ur la base de données
Juste à carillon, la différence de vitesse ne sera probablement pas le même registre. C'est moins que négligeable, parce que c'est probablement moins que le quantum de la longueur de la CPU, de sorte qu'il ne va pas prendre des cycles à l'écart des autres processus, y compris lui-même.
À quel point pensez-vous que cela ferait une différence? E. g. si j'ai dû trier 100 colonnes qui contiennent "" au lieu de chercher à "0" y aurait-il beaucoup de différence? Ou aurait-il à 1000, 10000, etc pour être perceptible?
OriginalL'auteur joshhunt | 2014-05-09
Vous devez vous connecter pour publier un commentaire.
Il y a une règle simple: Si vous avez besoin de faire de l'arithmétique ou de l'indexation, l'utilisation d'un type numérique, si ce n'est l'utilisation d'un type de caractère.
Que les règles du pouce dépend généralement de la taille et l'angle de la manette en question, voici ce que je veux dire:
+
et()
extrasLO7SWF
sera reconnaissante, si vous utilisez un VARCHAR#
et*
)Alors que c'est strictement vrai, qu'un index sur un champ de type VARCHAR avec le numérique-seul le contenu de 11 chiffres est légèrement plus lent qu'un INT(11), j'ai encore à voir le monde réel DB, cela fait une différence sensible.
OriginalL'auteur Eugen Rieck