2011-01-27 23 views
62

Jakieś dobre zasady, jak zdecydować, który z dwóch użyć?Sqlite lub MySql? Jak zdecydować?

A jeśli przejmiesz bazę danych Sqlite, a system ma się "znacznie powiększyć", jak zdecydować, czy pozostać przy niej, czy przenieść się do MySql?

+1

Weź pod uwagę FirebirdEmbedded, to bardzo potężna mieszanka tych dwóch. –

+1

Głosowanie za blisko jako zbyt szerokie. Możliwy duplikat został usunięty: http://stackoverflow.com/questions/3630/sqlite-vs-mysql –

+3

Jest on szeroki, ale kiedy opublikowano, takie pytanie było do zaakceptowania, a przynajmniej tolerowane. Mam nadzieję, że pytanie nie zostanie usunięte, podobnie jak ewentualny duplikat, aby inni mogli nadal czytać dyskusję i zalecenia. – Mawg

Odpowiedz

69

Ich zestawy funkcji nie są takie same. Sqlite jest wbudowaną bazą danych, która nie ma możliwości sieciowych (chyba że je dodasz). Więc nie możesz go używać w sieci.

Jeśli potrzebujesz

  • Dostęp do sieci - na przykład korzystającego z innego urządzenia;
  • Dowolny rzeczywisty stopień współbieżności - na przykład, jeśli sądzisz, że prawdopodobnie chcesz uruchomić kilka zapytań naraz lub uruchomić obciążenie, które ma wiele wyborów i kilka aktualizacji, i chcesz, aby działały gładko itd.
  • Dużo użycia pamięci, na przykład do buforowania części bazy danych 1 TB w 32G pamięci.

Musisz użyć mysql lub innych serwerów RDBMS opartych na serwerze.

Należy zauważyć, że MySQL nie jest jedynym wyborem i istnieje wiele innych, które mogą być lepsze dla nowych aplikacji (na przykład pgSQL).

Sqlite to bardzo, bardzo ładne oprogramowanie, ale nigdy nie twierdziło, że robi takie rzeczy, które robi serwer RDBMS. Jest to mała biblioteka, która uruchamia SQL na lokalnych plikach (używając blokowania, aby upewnić się, że wiele procesów nie wkręca pliku). Jest bardzo dobrze przetestowany i bardzo mi się podoba.

Ponadto, jeśli nie jesteś w stanie wybrać tego poprawnie samodzielnie, prawdopodobnie musisz zatrudnić kogoś w swoim zespole, który może.

+0

So sqllite to alternatywa dla plików dostępowych MS. – dvdmn

+2

Te trzy punkty są dokładnie tym, o czym mówi Richard Hipp: https://youtu.be/Jib2AmRb_rk?t = 1693 –

+0

Dla uproszczenia zawsze mam pojedyncze oprogramowanie, które jest jedynym użytkownikiem, który ma dostęp do bazy danych, nawet dla aplikacji sieciowych, które korzystają z bazy danych MySql. – Mawg

9

SQLite natychmiast po zainstalowaniu nie jest w pełni funkcjonalny, jeśli chodzi o współbieżność. Wpadniesz w kłopoty, jeśli setki żądań internetowych trafi do tej samej bazy danych SQLite.

Zdecydowanie powinieneś używać MySQL lub PostgreSQL.

Jeśli jest to projekt jednoosobowy, SQLite będzie łatwiejszy w konfiguracji.

+0

Dla uproszczenia, zawsze mam jeden program, który jest jedynym użytkownikiem, który ma dostęp do bazy danych, nawet dla aplikacji sieciowych, które używają bazy danych MySql, ale obosvusly, szczególnie dla Sqlite. – Mawg

6

Moje kilka centów za poprzednie doskonałe odpowiedzi. Witryna www.sqlite.org działa na bazie danych SQLite. Oto link, gdy autor (Richard Hipp) odpowiada na podobne pytanie.

+0

Dziękuję za link, ten sam autor kontynuuje z [własnym workbenchem] (http://www.mail-archive.com/[email protected]/msg00464.html) testował na Athlonie 1600 1 GB pamięci RAM. Dysk IDE 5400RPM. Redhat 7.3. Stwierdza on: "Teraz uważam, że SQLite jest odpowiednie do wykorzystania jako główna baza danych na stronach internetowych, które osiągają 1 milion odwiedzin dziennie." – Rutrus

39

Zespół sqlite opublikował artykuł wyjaśniający when to use sqlite, który jest świetny w czytaniu. Zasadniczo, chcesz uniknąć używania sqlite, gdy masz dużo zapisu współbieżności lub musisz skalować do terabajtów danych. W wielu innych przypadkach sqlite jest zaskakująco dobrą alternatywą dla "tradycyjnej" bazy danych, takiej jak MySQL.

Powiązane problemy