필자는 약 5 억 개의 128 비트 정수를 가지고 있으며 연간 약 100M을 더합니다. 아무것도 삭제되지 않습니다. 숫자는 규모와 시간에 따라 균일하게 분포합니다.대형 128 비트 정수를 저장하기위한 디스크 구조?
기본적으로 DB에 번호가 이미 있는지 여부를 반환하는 추가 작업이 필요합니다. 또한이 시스템에 너무 많은 RAM을 사용하고 싶지 않으므로 모든 것을 메모리에 저장하는 것이 내가 원하는 것이 아닙니다.
지금까지 우리는 두 개의 bigint를 기본 키로 사용하여 MySQL에서 여러 개의 MyISAM 테이블을 사용 해왔다. 이것은 우리에게 만족스러운 성능을 제공하지만,이 작업에 적합한 도구가 아닌 것 같습니다. 테이블을 분할하기 전에 몇 가지 성능 문제가 있었으며 우리는 정전에 대해 손상을 입었습니다. 또한 DB는 우리에게 필요하지 않은 많은 기능을 제공합니다.
저는 리눅스에서 파이썬을 사용하고 있습니다.하지만 제안 사항은 공개되어 있습니다.
업데이트 : Marcelo의 의견은 Bloom Filter이라고 말하면서 나에게 정말로 유망한 것으로 보입니다. 해시 작업을하고 있기 때문에 이미 완전한 정확성을 포기 했으므로 정확도/성능이 크게 향상 될 수 있습니다. 정수의 N 비트의 해시를 계산하여 선택
숫자 분포에 대해 알려주시겠습니까? 추가 정보 매년? –
균일해야합니다. 숫자는 해시입니다. 꾸준한 속도로, 초당 약 3 개의 연산이 추가됩니다. – itsadok