我有一些字节数据(数百万行),目前,我先将其转换为base64格式,然后将其存储为TEXT。数据在包含base64数据的行上进行索引。我认为Postgres会自己进行base64转换。
如果我使用BYTEA数据类型存储,速度会更快吗?两种数据类型对索引查询会产生什么影响?
我有一些字节数据(数百万行),目前,我先将其转换为base64格式,然后将其存储为TEXT。数据在包含base64数据的行上进行索引。我认为Postgres会自己进行base64转换。
如果我使用BYTEA数据类型存储,速度会更快吗?两种数据类型对索引查询会产生什么影响?
使用Base64将字节转换为文本会比字节多消耗33%的空间。即使这样更快,你在磁盘上使用的空间也会更多。加载和存储数据也应该会变慢。我认为这样做没有任何优势。
Postgres支持在BYTEA
列上创建索引。由于字节比文本短,具有索引的字节列应该比具有索引的文本列更快。
@clemens
的回答中的1.33%改成了33%? - uberrebu@clemens
的评论。 - uberrebu