- nebula 版本:3.5.0
- 部署方式:单机
- 安装方式:Docker
- 是否上生产环境:N
- 硬件信息
- 磁盘( 推荐使用 SSD)
- CPU、内存信息
- 问题的具体描述
有看到当使用 nGQL 语句读取 INT8 类型的属性时,获取到的值的类型为 INT64。那么请问相同的数字,如100,分别属性设为64 位整数(INT64)、32 位整数(INT32)、16 位整数(INT16)和 8 位整数(INT8)时,占据的内存空间会有差别吗,即数据会被补全吗?
1 个赞
下面是 3.x 版本在内存里面存储数据的代码,其中整形数都会被当作 int64_t
来存储,占据的空间都是 8 个 bytes。
union Storage {
NullType nVal;
bool bVal;
int64_t iVal;
double fVal;
std::unique_ptr<std::string> sVal;
Date dVal;
Time tVal;
DateTime dtVal;
Vertex* vVal;
Edge* eVal;
std::unique_ptr<Path> pVal;
std::unique_ptr<List> lVal;
std::unique_ptr<Map> mVal;
std::unique_ptr<Set> uVal;
std::unique_ptr<DataSet> gVal;
std::unique_ptr<Geography> ggVal;
std::unique_ptr<Duration> duVal;
Storage() {}
~Storage() {}
} value_;
2 个赞
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。