我如何在32位操作系统中存储BIGINT编号

时间:2017-02-03 13:01:51

标签: mysql 32-bit bigint

我在带有32位PIXEL OS(Raspbian版本)的raspberry pi 3(64位SoC)上运行LAMP堆栈。 我在MySQL中创建了一个新表,并将主键设置为无符号BIGINT(20)。最初我认为数据库只会截断溢出的数字或其他东西,但它实际上可以存储大于40亿的数字。为了更准确,我存储了数字5201702020。 怎么可能?

1 个答案:

答案 0 :(得分:0)

查看MySQL源代码,我发现至少有4个对BIGINT的引用:

1)“BIGINT”:

que retorna“PARS_BIGINT_TOKEN”:

2)作为结构:

3)在许多地方作为int64_t或uint64_t

4)Java语言类型,在所有java文件中。

并回答你的问题:

情况(1)和(2)将由源代码实现/逻辑处理。

情况(3)将由编译器处理,而不是OS。编译器将对BigInt变量和值进行所有必要的转换以完成工作。

情况(4)将由JVM处理,而不是像编译器那样由OS处理。