Potrzebuję przechowywać bardzo dużą liczbę (dziesiątki milionów) 512-bitowych skrótów SHA-2 w tabeli MySQL. Aby zaoszczędzić miejsce, chciałbym zapisać je w postaci binarnej, a nie ciąg cyfr szesnastkowych. Używam ORM (DBix::Class), więc konkretne szczegóły pamięci zostaną wyodrębnione z kodu, który może nadmuchać je do dowolnego obiektu lub struktury, którą wybiorę.Przechowywanie bardzo dużych liczb całkowitych w MySQL
Typ MySQL's BIGINT
ma 64 bity. Mogłem więc teoretycznie podzielić hasz wśród ośmiu kolumn BIGINT
. Wydaje się to jednak dość absurdalne. Inną moją myślą było użycie pojedynczej kolumny BLOB
, ale słyszałem, że mogą być powolne w dostępie, ponieważ MySQL traktuje je jako pola o zmiennej długości.
Jeśli ktoś mógłby zaoferować coś takiego, co zaoszczędziłoby mi kilku godzin testów porównawczych różnych metod, byłbym wdzięczny.
Uwaga: Automatycznie -1 do każdego, kto mówi "po prostu użyj postgresu!" :)
wystarczy użyć postgres :) – jeje