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