Question

Je travaille sur le projet avec une table de base de données relativement grande ( 700K lignes ).

Erreur, j'ai commis lors de la conception du schéma de base de données. Lorsque le nombre de lignes augmentait, je devais augmenter le type de colonne bigint de l'ID ( x ).

Maintenant, c'est bigint (44). J'ai peur de définir une valeur x élevée, car je pensais que cela pouvait considérablement ralentir les performances. Peut-être que je me trompe ..

Aidez-moi à résoudre le problème.

Quel type de colonne puis-je définir une fois et oublier ce problème?

Que dois-je mieux apprendre dans le domaine de la conception de schéma de base de données?

Était-ce utile?

La solution

Lorsque vous créez une colonne sous la forme BIGINT (44) , le " 44 " correspond à la largeur d’affichage. Elle n’affecte pas la plage de valeurs que vous pouvez stocker ni la vitesse à laquelle elles sont récupérées.

Pour un identifiant à incrémentation automatique, vous souhaitez utiliser un numéro UNSIGNED , par exemple. BIGINT (44) UNSIGNED . Cela doublera la plage de valeurs et ajoutera une contrainte supplémentaire, ce qui est généralement une bonne chose.

Un INT non signé stockera jusqu'à 4 294 967 295 Un BIGINT non signé stockera jusqu'à 18 446 744 073 709 551 615 - vous ne le ferez pas bientôt.

Vous ne dites pas à quelle vitesse votre identifiant maximal augmente - si vous n'insérez pas beaucoup de lignes, vous devriez vous en tenir à UNSIGNED INT car cela prend moins d'espace.

Autres conseils

Je pense que toute clé primaire sera non signée par défaut. Dans tous les cas, utiliser des nombres négatifs pour les clés primaires est au mieux mal vu et casse des trucs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top