存储和访问二进制数据
正如 C API 基础数据类型页面中所解释的,对于动态字段(如字符串、向量、序列、二进制大对象或可选结构字段),SmartEDB 会在对象的数据布局中存储一个引用指针,而实际对象数据则单独存储。当访问对象时,系统会通过这个引用地址获取实际数据。特别是对于持久性数据库,这种设计可能会引发额外的磁盘 I/O 操作,从而影响性能。
例如,由于短二进制大对象(blob)字段的数据是分开存储的,因此其执行速度通常会比固定长度字符字段慢。基于此,我们建议仅对大于 1Kb 的大字段使用 blob 字段。如果字段不打算用于索引且其数据大小小于 64Kb,推荐使用字符串数据类型。此外,如果包含二进制数据的字段需要进行索引,建议使用 binary 或 varbinary 数据类型,以确保最佳性能。
为了在查询结果中清晰显示存储在 BLOB 或字符串字段中的二进制数据,通常推荐使用 base64 编码。
有关二进制数据使用的更多示例,请参阅“C++ 中的结构体、数组和字符串”页面的“二进制数据”部分。