Tyler Liu
Tyler Liu

Reputation: 20356

binary data in database, blob vs compressed base64

There is a column type named blob in database, and it is used to store binary data.

But more often than not, I see solutions which compress binary data, then convert binary data to base64, and store base64 string as varchar or text in database.

Python code example:

import zlib, base64
base64_str = base64.b64encode(zlib.compress(binary_data, 9))

So there are two ways to store binary data into database:

  1. as blob
  2. as compressed base64

My Questions is: Which way is better and why?

Upvotes: 19

Views: 10050

Answers (1)

Tyler Liu
Tyler Liu

Reputation: 20356

It seems that I have to answer my own question. Most of the time, storing compressed base64 into database is not a good idea. It is more complex than storing blob. And most of the time binary is smaller than base64 string.

I only find one case that compressed base64 is useful: you can't alter the table schema, and there are only text columns, thus you have to store binary data into that table. The only possible way is to convert binary to base64 string.

Upvotes: 22

Related Questions