In SQL Server would a varbinary(16)
be the most efficient way of storing an MD5 hash? Won't be doing anything with it except returning it in a linq query.
Asked
Active
Viewed 1.1k times
13

felipe.zkn
- 2,012
- 7
- 31
- 63

Nic Strong
- 6,532
- 4
- 35
- 50
2 Answers
16
Based on the documentation on MSDN and my experience, binary is better, since the md5 hash does not vary in size.
The size for a binary data type is n bytes, so the size of the data. The size of a varbinary data type is n bytes + 2 bytes on top of the size of the data.

Dale Ragan
- 18,202
- 3
- 54
- 70
2
Null values change things:
A null varbinary(16) is 2 bytes.
A null binary(16) is 16 bytes.
16 bytes stored in varbinary(16) takes 18 bytes.
16 bytes in binary(16) takes 16 bytes.

Dan
- 593
- 8
- 16