Django сжимает строковые данные
У меня есть модель django, имеющая: raw_data = models.TextField(_("raw_data"), default='')
Он просто хранит некоторые необработанные данные, которые могут быть 1K - 200K.
У меня 50 миллионов строк.
Мне нужно уменьшить размер данных в базе данных.
How can I tell what consume most data over all database ?
Should I use a string compression before storing the data ?
2.1 I saw here: Text compression in PostgreSQL that it get compressed anyway, is that true ?
2.2 I did some python code compression, I am not sure if changing bytes to string type can cause in lossing data:
def shrink_raw_data(username):
follower_data = get_string_from_database()
text = json.dumps(follower_data).encode('utf-8') # outputs as a bytes
# Checking size of text
text_size = sys.getsizeof(text)
print("\nsize of original text", text_size)
# Compressing text
compressed = str(zlib.compress(text, 9))
# store String in database
# Checking size of text after compression
csize = sys.getsizeof(compressed)
print("\nsize of compressed text", csize)
# Decompressing text
decompressed = zlib.decompress(compressed)
# Checking size of text after decompression
dsize = sys.getsizeof(decompressed)
print("\nsize of decompressed text", dsize)
print("\nDifference of size= ", text_size - csize)
follower_data_reload = json.loads(decompressed)
print(follower_data_reload == follower_data)
Я не уверен насчет "str(zlib.compress(text, 9))", так как мои данные хранятся в виде строки в базе данных, правильно ли это?