Załóżmy, że mamy gdzieś biliony zestawów. Domena każdego z tych zestawów jest taka sama. Jest również skończony i dyskretny. Zatem każdy zestaw może być przechowywany jako pole bitowe (np .: 0000100111 ...) o stosunkowo krótkiej długości (np. 1024). Oznacza to, że bit X w polu bitowym wskazuje, czy element X (z 1024 możliwych pozycji) jest zawarty w podanym zestawie, czy nie.Najszybszy sposób wykonywania operacji testowania podzbioru na dużej kolekcji zestawów o tej samej domenie
Teraz chcę zaprojektować strukturę pamięci masowej i algorytm, aby efektywnie odpowiedzieć na zapytanie: jakie zestawy w składnicy danych ustawiły Y jako podzbiór. Sama wartość Y nie występuje w składnicy danych i jest określona w czasie wykonywania.
Teraz najprostszym sposobem rozwiązania tego problemu będzie I bitfield dla zestawu Y z polami bitowymi każdego zestawu w składnicy danych jeden po drugim, wybierając te, których I wynik pasuje do pola bitowego Y.
Jak mogę to przyspieszyć? Czy istnieje struktura drzewa (indeks) lub jakiś inteligentny algorytm, który pozwoliłby mi na wykonanie tej kwerendy bez konieczności korzystania z każdego pola bitowego zestawu przechowywanego?
Czy istnieją bazy danych, które już obsługują takie operacje w dużych kolekcjach zestawów?
Jakiego typu bazy danych używasz? Zastrzeżony format? Serwer SQL? –
Wybór DB będzie zależeć od tego, czy efektywnie obsługuje określone operacje na setach humongous. Żaden z SQL DBS nie skaluje się do wymaganego rozmiaru (RDMS DB i tak byłby złym wyborem dla tego problemu). Zatem wybór jest albo wyspecjalizowanym DB, albo DB, który sam będę realizował. – niktech
Czy znalazłeś jakieś rozwiązanie? To dziwne, że nie ma dobrze znanych baz danych do tego zadania. – actual