2017-08-03 79 views
0

我知道BIGINT可以存储8byte数字。 我想存储长度为12(固定长度)的数字。所以使用INT是不可能的。SQL - BIGINT数据类型始终是8个字节?

如果我存储一个数字,如153159842655,需要多少存储空间?它总是8byte还是取决于数字?

第二个问题是增加或减少数字的长度会影响性能(索引数字,选择...)?这张桌子可以有数十亿个纪录! 我使用BIGINT类型的列的InnoDB的

+0

你在用什么数据库?不同数据库的类型不同 –

+0

与众不同吗?我使用innoDB – AliN11

+0

检查BigInt的文档https://mariadb.com/kb/en/mariadb/bigint/ –

回答

0

关于存储检查从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

当然,你需要确切地知道什么样的数据,你会为了选择最佳的数据类型(符合你需要的那一个)被存储。

+0

我想知道BIGINT列中4长度数与20长度数的存储空间 – AliN11

+0

全部具有相同的8个字节。 –

+0

即使我存储0(零)? – AliN11

相关问题