Quelle est la différence entre tinyint, smallint, mediumint, bigint et int dans MySQL?
Quelle est la différence entre tinyint, smallint, mediumint, bigint et int dans MySQL?
Dans ce cas, devraient-ils être utilisés?
Vous devez vous connecter pour publier un commentaire.
Ils prennent des quantités différentes de l'espace et ils ont différentes gammes de valeurs acceptables.
Voici les tailles et gammes de valeurs pour SQL Server, d'autres RDBMSes similaires documentation:
NUMBER
datatype vraiment)S'avère qu'ils utilisent tous le même cahier des charges (avec quelques exceptions mineures indiqué ci-dessous) mais la prise en charge de diverses combinaisons de ces types de données (Oracle pas inclus parce qu'il a juste une
NUMBER
type de données, voir le lien ci-dessus):Et ils prennent en charge les mêmes gammes de valeur (avec une exception ci-dessous) et tous ont les mêmes exigences en matière d'entreposage:
Le "non signée" ne sont disponibles que dans le serveur MySQL, et le reste il suffit d'utiliser la signature des plages, avec une exception notable:
tinyint
dans SQL Server n'est pas signé et a une plage de valeurs de 0 à 255brobdingnagianint
est une grande surveillance. ("Quelle taille?", vous demandez-vous...)la taille de l'espace de stockage requis et comment grand les nombres peuvent être
sur SQL Server
tinyint 1 octet 0 à 255
smallint 2 octets, -2^15 (de -32 768) 2^15-1 (de 32 767)
int 4 octets, -2^31 (-2,147,483,648) à 2^31-1 (de 2 147 483 647)
bigint 8 octets, -2^63 (-9,223,372,036,854,775,808) à 2^63-1 (9,223,372,036,854,775,807)
vous permet d'enregistrer le numéro 1 dans tous les 4, mais un bigint utilisera 8 octets alors qu'un tinyint utilisez 1 octet
Ceux qui semblent être MySQL types de données.
Selon la la documentation ils prennent:
Et, naturellement, d'accepter de plus en plus larges gammes de nombres.
Quand il arrive à l'utilisation du monde réel de ces types de données, il est très important que vous compreniez que l'utilisation de certains types d'entiers pourrait simplement être inutile ou sous-utilisés. Par exemple, à l'aide de type de données entier pour employeeCount dans un tableau dire que l'employé pourrait être trop puisqu'il prend en charge une gamme de valeurs entières de ~ négatif de 2 milliards de dollars positif de 2 milliards de dollars, ou de zéro à environ 4 milliards de dollars (non signé). Donc, même si vous considérez que l'un de NOUS le plus grand employeur tels que Walmart, avec près de 2,2 millions de salariés utilisant un type de données entier pour la employeeCount colonne serait inutile. Dans ce cas, vous utilisez mediumint (qui prend en charge de 0 à 16 millions de dollars (non signé)) par exemple. Ayant dit que, si votre gamme devrait être exceptionnellement grande, vous pourriez envisager de type bigint, comme vous pouvez le voir à partir de Daniel notes prend en charge une gamme de plus de je l'aime à déchiffrer.
La différence est la quantité de mémoire allouée à chaque entier, et comment un grand nombre ils peuvent stocker.
Type de données Plage de Stockage
Exemple
L'exemple suivant crée un tableau à l'aide de la bigint, int, smallint, tinyint types de données. L'insertion de valeurs dans chaque colonne et est retourné dans l'instruction SELECT.