Bereik van variabelen als record id

Wanneer kies je in Gambas voor int, wanneer voor long?
Wanneer kies je in de databank voor een int(11), wanneer voor bigint(20)?

https://gambaswiki.org/wiki/lang/type

Kleinere:
Datatype Description Default value Size in memory
Boolean True or false. FALSE 1 byte
Byte 0...255 0 1 byte

Integer meer of minder:
Datatype Description Default value Size in memory
Short -32.768...+32.767 0 2 bytes
Integer -2.147.483.648...+2.147.483.647 0 4 bytes
Long -9.223.372.036.854.775.808...+9.223.372.036.854.775.807 0 8 bytes

Ik merk dat ik uit luiheid meestal “int” gebruik. Dikwijls is dat overkill, en is Short zeker genoeg. En als er geen negatieve getallen kunnen voorkomen (soms wordt een fout aangeduid door een negatief getal), en het maar over een klein getal gaat, dan is Byte zelfs genoeg.
Bij int is het vooral opletten met de grenzen als het bv record nummers woden; 2 miljoen records is niet zo veel.

MariaDB datatypes
MySQL datatypes, bv de integer data types :

Vereiste opslag en bereik van integer data types in MySQL

Type Opslag (Bytes) Minimum waarde Signed Minimum waarde Unsigned Maximum waarde Signed Maximum waarde Unsigned
TINYINT 1 -128 0 127 255
SMALLINT 2 -32768 0 32767 65535
MEDIUMINT 3 -8388608 0 8388607 16777215
INT 4 -2147483648 0 2147483647 4294967295
BIGINT 8 -263 0 263-1 264-1

Zie ook de tabel voor het doen overeenkomen van een type in de programmeertaal naar de databank, db-type mapping:

https://gambaswiki.org/wiki/doc/db-type-mapping

This entry was posted in Databank, Gambas3, vraag-me-af. Bookmark the permalink.