MySQL colonne d'auto-incrémentation des sauts de 10 - pourquoi?
J'ai un couple de tables dans lesquelles j'ai créé un ID de l'objet comme un Int ou Bigint, et dans les deux cas, ils semblent d'auto-incrémentation de 10 (c'est à dire, le premier insert ID de l'objet 1, le deuxième est l'ID de l'objet 11, le troisième est l'objet ID 21, etc). Deux questions:
-
Pourquoi faut-il faire?
-
Est-ce un problème?
- Ce n'est pas un problème, bien qu'il puisse indiquer le souhaitent ont la possibilité d'insérer des valeurs dans entre les autres et donc en s'appuyant sur l'id de la commande de critères. Ce n'est pas bon.
- Il pourrait également être un problème si vous inquiet au sujet de l'exécution de l'ID de trop rapide (si vous vous attendez à BEAUCOUP de disques), puisque vous êtes seulement à l'aide de 1/10 de la gamme de stockage pour.
- Je suppose que votre auto_increment_increment est autre chose que le 1 en raison de la réplication. Avec des tables répliquées on ne peut pas utiliser 1 à cause du risque de clé de collisions.
Vous devez vous connecter pour publier un commentaire.
Vérifier la valeur de départ de l'auto-incrémentation n'est pas fixé à 10.
Vous pouvez vérifier par:
Comme l'a noté ailleurs vous pouvez modifier à l'aide de la variable système @@set_auto_increment_increment
Si vous voulez commencer à les valeurs à un numéro autre que celui que vous pouvez aller:
Merci de ne pas modifier le
auto_increment_increment
. ClearDB est fait exprès. C'est expliqué dans la documentation:Merci @Jim Fiorato pour le lien.
Pour vérifier combien l'auto incrément valeur par incréments, utilisez la requête suivante:
L'auto incrément incrément de la valeur définie dans le système MySQL variables.
Voir ici:
http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#option_mysqld_auto-increment-increment
autoincriment valeur peut sauter si l'aide d'insérer à IGNORER attribut dans le cas lorsque l'enregistrement n'a pas été créé