2009-07-31 15 views
14

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!" :)

+12

wystarczy użyć postgres :) – jeje

Odpowiedz

18

Czy brałeś pod uwagę "binarny (64)"? Zobacz typ MySQL binary.

+0

Dzięki, 'BINARY' wygląda na to, że zadziała idealnie. – friedo

Powiązane problemy