2011-11-21 38 views
9

Có một loại cột có tên là blob trong cơ sở dữ liệu và được sử dụng để lưu trữ dữ liệu nhị phân.dữ liệu nhị phân trong cơ sở dữ liệu, blob và nén base64

Nhưng thường xuyên hơn không, tôi thấy các giải pháp nén dữ liệu nhị phân, sau đó chuyển đổi dữ liệu nhị phân thành base64 và lưu chuỗi base64 dưới dạng varchar hoặc văn bản trong cơ sở dữ liệu.

Python mã ví dụ:

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

Vì vậy, có hai cách để lưu trữ dữ liệu nhị phân vào cơ sở dữ liệu:

  1. như blob
  2. dưới dạng base64 nén

Câu hỏi của tôi là : Cách nào tốt hơn và tại sao?

+4

Tôi không hiểu tại sao bất kỳ ai sử dụng phương pháp 2. Nó giới thiệu sự phức tạp không cần thiết và làm xáo trộn dữ liệu hai lần. Tuy nhiên, tôi sẽ không đăng câu trả lời này bởi vì tôi không có bất kỳ bằng chứng cứng nào cho thấy không có trường hợp base64 nén nào có lợi hơn 'BLOB'. – Polynomial

Trả lời

12

Dường như tôi phải trả lời câu hỏi của riêng mình. Hầu hết thời gian, lưu trữ base64 nén vào cơ sở dữ liệu không phải là một ý tưởng tốt. Nó phức tạp hơn là lưu trữ blob. Và phần lớn thời gian, nhị phân nhỏ hơn chuỗi base64.

Tôi chỉ tìm thấy một trường hợp mà base64 nén hữu ích: bạn không thể thay đổi giản đồ bảng và chỉ có cột văn bản, bạn phải lưu trữ dữ liệu nhị phân vào bảng đó. Cách duy nhất có thể là chuyển đổi nhị phân thành chuỗi base64.

+3

Không biết bạn có thể trả lời và chấp nhận câu hỏi của riêng bạn nhưng cũng được thực hiện! –

Các vấn đề liên quan