Krótka odpowiedź brzmi: tak, oczywiście wpłynie to na wydajność, ponieważ długość klucza będzie miała bezpośredni wpływ na czas potrzebny do schodzenia w dół drzewa.
Wpływa także na przechowywanie, ponieważ dłuższe klawisze zajmują więcej miejsca, a miejsce zajmuje trochę czasu.
Jednak brak niuansów polega na tym, że podczas gdy kanapka MOŻE (i ma) przydziela nowe identyfikatory, nie jest wymagane. Z przyjemnością zaakceptujemy własne identyfikatory, a nie wygenerujemy własne. Tak więc, jeśli długość klucza przeszkadza Ci, możesz używać krótszych klawiszy.
Jednak biorąc pod uwagę "jsonową" naturę kanapy, jest to raczej baza danych "tekstowa". Nie ma zbyt wiele danych binarnych przechowywanych w normalnej instancji Couch (załączniki nie są odporne, ale nawet te, które moim zdaniem są przechowywane w BASE64, mogę się mylić).
Tak więc, chociaż tak, 64-bitowy byłby najbardziej wydajny, prosty fakt jest taki, że kanapa zaprojektowana jest do pracy dla dowolnego klucza, a "dowolny klucz" jest najłatwiejszy do wyrażenia w tekście.
Wreszcie, prawdę mówiąc, koszt porównania klucza jest pomniejszony przez czasy pobierania we/wy dysku, a JSON gromadzi dane (szczególnie przy zapisach). Wszelkie rzeczywiste zyski osiągnięte przez konwersję do takiego systemu prawdopodobnie nie miałyby wpływu na "rzeczywisty świat" na ogólną wydajność.
Jeśli chcesz naprawdę przyspieszyć system klawiszy Couch, zakoduj kluczową procedurę, aby zablokować klucz do 64Bit longs i dołącz je (tak jak powiedziałeś). 8 bajtów tekstu jest takie samo jak 64-bitowe "długie int". Daje to teoretycznie 8-krotny wzrost wydajności w porównaniu z kluczem. Niezależnie od tego, czy erlang może stworzyć taki kod, nie mogę powiedzieć.
Dzięki za odpowiedzi. Uwielbiam elegancję, na którą pozwalają długie łańcuchy. A teraz moje obawy dotyczące wydajności są zmniejszone. –