2013-08-06 10 views
6

dla mojego programu Link zgarniania (napisany w python3.3) Chcę używać bazy danych do przechowywania około 100.000 stron:Szybka relacyjnej bazy danych do łatwego użycia z Python

  • tylko adres URL,
  • czas pieczęć
  • i dla każdej strony lista kilku właściwości

nie mam wiedzy na temat baz danych, ale okazało się, co następuje mogą dopasować swój cel:

  • Postgresql
  • SQLite
  • Firebird

Jestem zainteresowany prędkości (aby uzyskać dostęp do bazy danych i do uzyskania poszukiwanych informacji). Na przykład: w przypadku strony internetowej x istnieje właściwość y, a jeśli tak, przeczytaj ją. Szybkość pisania jest oczywiście również ważna.

Moje pytanie: czy są duże różnice w prędkości lub czy nie ma to znaczenia dla mojego małego programu? Może ktoś może powiedzieć, która baza danych spełnia moje wymagania (i jest łatwa w obsłudze z Pythonem).

Odpowiedz

4

Rozmiar i skala bazy danych nie jest szczególnie duży, a to dobrze w zakresie prawie każdego rozwiązania off-the-shelf bazy danych.

Zasadniczo, to co zrobisz, to zainstalowanie serwera bazy danych na twoim komputerze i pojawi się na danym porcie. Następnie możesz zainstalować bibliotekę w Pythonie, aby uzyskać do niej dostęp.

Na przykład, jeśli chcesz korzystać z PostgreSQL, będziesz go zainstalować na komputerze i będzie wymyślić przywiązany do jakiegoś portu, takich jak 5000, lub portu 5432.

Ale jeśli tylko mają informacje, które "Mówimy o przechowywaniu i pobieraniu, prawdopodobnie chcesz iść z rozwiązaniem NoSQL, ponieważ jest to bardzo łatwe.

Na przykład można install mongodb na serwerze, a następnie zainstalować pymongo. Samouczek dla pymongo nauczy Cię wszystkiego, czego potrzebujesz do swojej aplikacji.

5

Jeśli prędkość jest głównym kryterium, proponuję użyć bazy danych w pamięci. Spójrz na http://docs.python.org/2/library/sqlite3.html

może być używany jako zwykły bazy też, dla trybu w pamięci użyć poniżej i db powinien dostać utworzone w samej pamięci RAM i co za tym idzie znacznie szybszym run-time dostępu.

import sqlite3 
conn = sqlite3.connect(':memory:') 
+0

Może nie byłem wystarczająco jasny. Mój program będzie działał na serwerze 24/7 i powinno być możliwe połączenie z bazą danych z innych maszyn. – zwieback86

+0

w takim przypadku powinieneś użyć bardziej hybrydowego podejścia, takiego jak mongodb. gdzie db jest mapowany w pamięci, dzięki czemu uzyskujesz szybki dostęp i jest on również na dysku. http://docs.mongodb.org/manual/faq/storage/ – v2b

Powiązane problemy