我知道BIGINT
可以存储8byte数字。 我想存储长度为12(固定长度)的数字。所以使用INT
是不可能的。SQL - BIGINT数据类型始终是8个字节?
如果我存储一个数字,如153159842655
,需要多少存储空间?它总是8byte还是取决于数字?
第二个问题是增加或减少数字的长度会影响性能(索引数字,选择...)?这张桌子可以有数十亿个纪录! 我使用BIGINT类型的列的InnoDB的
我知道BIGINT
可以存储8byte数字。 我想存储长度为12(固定长度)的数字。所以使用INT
是不可能的。SQL - BIGINT数据类型始终是8个字节?
如果我存储一个数字,如153159842655
,需要多少存储空间?它总是8byte还是取决于数字?
第二个问题是增加或减少数字的长度会影响性能(索引数字,选择...)?这张桌子可以有数十亿个纪录! 我使用BIGINT类型的列的InnoDB的
关于存储检查从DBA交换这个答案(是SQLServer的,但类似的数字将被其他RDBMS预计): https://dba.stackexchange.com/questions/98433/storage-size-of-a-bigint-table#98435
至于性能,我认为你不应该”不要担心数字数据类型。所有数据库都非常适合处理数百万条记录,使用和索引时选择数据会更快。 你可以在这里找到不同的数值数据类型的性能在甲骨文的比较:https://oracle-base.com/articles/misc/performance-of-numeric-data-types-in-plsql
当然,你需要确切地知道什么样的数据,你会为了选择最佳的数据类型(符合你需要的那一个)被存储。
你在用什么数据库?不同数据库的类型不同 –
与众不同吗?我使用innoDB – AliN11
检查BigInt的文档https://mariadb.com/kb/en/mariadb/bigint/ –