PostgreSQL:"bytea"和"bit varying"类型之间的区别

 秋林学士_809 发布于 2022-12-14 19:04

PostgreSQL类型byteabit varying声音类似:

bytea存储二进制字符串.

bit varying存储1和0的字符串.

文档没有提到任何一个的最大大小.难道是1GB喜欢character varying

我有两个单独的用例,都在一个包含数百万行的表中:

存储MD5哈希值

这将是一个bytea长度为16个字节或a bit(128).它将用于:

重复数据删除:大量使用GROUP BY,我想有一个索引.

WHERE md5 =仅查询完全匹配.

显示为人类使用的十六进制字符串.

存储任意二进制数据

长度不超过4kB的二进制数据字符串:

按位运算以查找与某个掩码匹配的字符串.这篇文章末尾的例子.

提取一些字节,例如获取字符串中字节14的整数值.

一些重复数据删除.

使用按位操作的工作示例bit varying.掩码是X'00FF00',它只返回行X'AAAAAA'.我缩短了示例的字符串,但它将超过它们的全长,高达4kB.是否可以做类似的事情bytea

CREATE TABLE test1 (mystring bit varying);
INSERT INTO test1 VALUES (X'AAAAAA'), (X'ABCABC');
SELECT * FROM test1 WHERE mystring & X'00FF00' = X'00AA00';

其中的byteabit varying是比较合适的?

我看到这个UUID类型正好存储了16个字节,那么存储MD5会有什么好处吗?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有