2009-06-23 13 views
19

Mam dość duży zestaw danych i chciałbym go przechowywać w pliku zamiast w RDBMS.SQLite dla dużych zestawów danych?

Główna tabela w zbiorze danych ma nieco ponad 1 mln wierszy, 30 kolumn i około 600 MB jako plik CSV.

Biorę pod uwagę SQLite. Czy warto zbadać SQLite pod kątem zestawów danych tego rozmiaru?

Odpowiedz

16

SQLite obsłuży ten plik dobrze; pamiętaj, aby zaimportować rekordy w transakcji, aby nie zajmowały dużo czasu podczas tworzenia indeksów, dopóki wszystko nie zostanie zaimportowane.

+0

Dzięki za dodatkowy napiwek Paul. –

8

Sprawdziłem ostatnio SQLite dla podobnej aplikacji. Dokumentacja SQLite stwierdza, że ​​bazy danych SQLite mogą mieć terabajty, a głównym ograniczeniem SQLite jest współbieżność (wielu użytkowników jednocześnie). Chociaż nie poszliśmy w tym kierunku (mamy własny format przechowywania binarnego), byłem przekonany, że SQLite może obsługiwać pliki o tym rozmiarze.

2

sqlite powinien działać dobrze dla Ciebie. Uruchomiłem zestaw danych o takim rozmiarze, nawet w urządzeniach wbudowanych, a wydajność sqlite była całkiem rozsądna.

Jak stwierdzono, głównym wąskim gardłem jest współbieżność. Dąż do zaprojektowania systemu tak, aby był maksymalnie jeden uchwyt bazy danych otwarty dla pliku bazy danych.

5

sqlite jest szybki, gdy używasz transakcji i nie popełniasz zbyt często. Używanie przygotowanych instrukcji z parametrami również przyspiesza pracę. Sqlite nie musi przetwarzać każdej instrukcji SQL, gdy używasz sparametryzowanych zapytań. Przykład: How do I get around the "'" problem in sqlite and c#?

Przechowuję 2 gigabajty w sqlite db, działa bardzo dobrze. Dużą zaletą sqlite nad plikiem płaskim jest możliwość indeksowania danych.

3

Masz już odpowiedź, ale chciałbym podzielić się moim bieżącym eksperymentem: Zrzuciłem miliardy rekordów o wartości 793 GiB danych do jednej bazy danych SQLite, a przeczytane zapytania nadal są zaskakująco szybkie (poniżej 1m).

Czas tworzenia trwał nieco ponad 22 godziny, a tworzenie postindeksu zajmuje około 4 godzin na kolumnę.

+0

Imponujące ... Jeśli osiągnę 10% tego, będzie dużo. Sprzedany. – ppumkin

Powiązane problemy