Jestem projektowania nowego projektu internetowego, a po studiach kilka opcji służących skalowalność, wpadłem na dwóch rozwiązaniach bazodanowych:lokalne SQLite vs zdalnego MongoDB
- lokalne pliki SQLite starannie zaprojektowane do skalowalnego mody (jeden nowy plik bazy danych dla każdego użytkownika X, ponieważ zapisy będą zależały od zawartości użytkownika, bez zależności od danych użytkowników);
- Zdalny serwer MongoDB (np. Mongolab), ponieważ mój serwer hosta nie obsługuje MongoDB.
Nie ufam serwerowi MySQL w bieżącym hoście udostępnionym, ponieważ często pojawia się on (i miałem problemy z MySQL na innym hoście). Z tego samego powodu nie używam PostgreSQL.
Plusy SQLite:
- To lokalny, więc musi być szybsze (Zajmę z użyciem indeksu i transakcje poprawnie);
- Nie muszę się martwić o podsłuchiwanie tcp, ponieważ protokół drutu Mongo is not crypted;
- Nie muszę się martwić o awarię serwera, ponieważ SQLite jest bezserwerowy.
Plusy MongoDB:
- To łatwiej skalowalne;
- Nie muszę się martwić o dzielenie baz danych, ponieważ skalowalność wydaje się być naturalna;
- Nie muszę się martwić zmianami w schemacie, ponieważ Mongo jest bezpodstawne i SQLite doesn't fully support alter table (szczególnie biorąc pod uwagę zmianę wielu plików produkcyjnych itp.).
Chcę pomóc w podjęciu decyzji (a może rozważyć trzecią opcję). Który z nich jest lepszy, gdy operacje zapisu i odczytu rosną?
Mam zamiar użyć Ruby.
MongoDb jest zoptymalizowany do operacji zapisu – Adrian
@Adrian: to dość przesada :-) –