2009-08-04 9 views
6

Czy ktoś użył szafki Tokyo na iPhonie? Chciałbym sprawdzić, czy istnieją różnice w wydajności rzeczywistej między nim a SQLite3.Gabinet Tokyo vs SQLite3 na iPhonie

Ponadto, SQLite 3 ma ekspresyjną moc SQL, czy Gabinet Tokyo ma jakikolwiek język zapytań?

Wszelkie dane wejściowe zostaną bardzo docenione, dzięki.

Odpowiedz

3

Nie korzystałem specjalnie z iPhone'a, ale użyłem obu do różnych projektów. Jak zauważyłeś, SQLite zapewnia język zapytań SQL, co oznacza, że ​​masz większą elastyczność w wyszukiwaniu i znajdowaniu danych. Zakładając, że wygodnie posługujesz się SQL, będziesz mógł łatwo filtrować, odnosić i agregować wyniki.

Gabinet Tokyo oferuje inny typ systemu przechowywania danych, ponieważ jest to magazyn kluczy i wartości. Jak sama nazwa wskazuje, systemy te służą do przechowywania par (klucza, wartości). Dane przechowywane w TC muszą mieć unikalny klucz, do którego można się odwoływać, i można się do niego odwoływać wyłącznie za pomocą tego klucza. Interfejs dostępu do TC to w zasadzie wartość = get (klucz) i zestaw (klucz, wartość).

Z perspektywy zapytania uzyskanie dostępu do TC jest w przybliżeniu równoznaczne z użyciem SQLite i dopuszczeniem tylko pól klucza podstawowego i jednego innego pola danych.

Główną zaletą TC jest wydajność. Jeśli i o ile lepiej, będzie to zależeć w dużym stopniu od obciążenia pracą. Ogólnie, jeśli wszystko, czego potrzebujesz, to magazyn klucz-wartość, powinieneś iść z TC, ale jeśli potrzebujesz języka zapytań SQL, to jest to SQLite.

+1

To nie prawda, że ​​TC udostępnia tylko magazyn klucz-wartość; Baza danych tabeli TC * ma * obsługuje proste zapytania. Są one równoważne SELECT ... WHERE x y gdzie operator może być równy, przedrostek ciągu, przyrostek ciągu, wyrażenie regularne, numeryczny większy niż, numeryczny mniejszy niż. Wyszukaj tcrdbqryaddcond w http://tokyocabinet.sourceforge.net/tyrantdoc/. – mjs

0

Licencja Tokyo Cabinet nie pozwala na łączenie statyczne, więc nie można go używać do programowania iPhone'a.

+1

LGPL nie zabrania łączenia statycznego. Wymaga, aby użytkownik mógł zastąpić LGPL, dynamiczne łączenie to tylko 1 sposób, aby to osiągnąć. Możesz również zwolnić swój kod źródłowy aplikacji lub kod obiektu. Rozumiem, że są to niedopuszczalne rozwiązania dla niektórych programistów, ale chciałem być jasny. – mikerobi

2

BNRPersistence to biblioteka obiektów wytrwałości zbudowana nad Gabinetem w Tokio, myślę, że to naprawdę fajne rozwiązanie. W sieci istnieje porównanie między Core Data a Tokyo Cabinet.