Schemaless jest idealne dla dwóch powodów.
- mózgu optymalizacji intuicyjności przechowywania dokumentów
- postanawia Sparse-Matrix i Entity-Attribute-Value problemów związanych z przechowywaniem
Użyłem Bo th SQL i No-SQL dla aplikacji produkcyjnych w Ruby on Rails. Nie jestem ekspertem od baz danych i muszę przyznać, że szukałem w Google hasła ACID i podobnych terminów, ponieważ nie są mi one znane.
"Ah ha!" Można powiedzieć, że jest to kolejna osoba, która śledzi trendy w sieci. Ale tak naprawdę jestem bardzo zadowolony z mojej decyzji o użyciu MongoDB w naszej najnowszej 2-letniej aplikacji i oto dlaczego ...
Odwrotną intuicyjną intuicją w zakresie optymalizacji mózgu było moje doświadczenie z e-mailem Magento. system handlu. Nie chcę go bashować, ponieważ dobrze mi wtedy służyło, ale naprawdę mocno uderzyło w procesor, próbując obliczyć atrybuty każdego produktu. Podstawową przyczyną było przechowywanie danych produktów w postaci atrybut-wartość-wartości. Pamięć podręczna lub cholerna była rozwiązaniem.
Główną zaletą jest dla mnie optymalizacja w jedynym miejscu, które naprawdę ma znaczenie - Twój własny mózg. Tak wiele technologii jest krytykowanych pod kątem ich wydajności w pamięci, procesorach, sprzęcie, a jednak posiadanie bazy danych, która jest niezwykle intuicyjna w zrozumieniu, ma swoje zalety. Szybko dodaliśmy funkcje do naszego kodu, ponieważ baza danych wygląda po prostu tak, jak w rzeczywistym świecie, który modelujemy. Kiedy poprosiłem klientów e-commerce, aby zaprezentowali mi swoją listę produktów, będą naturalnie korzystać z Excela (think table store). Pierwsze kolumny są proste:
- Nazwa produktu
- Cena
- Product Type (
Wtedy staje się trudniejsze i pokryte notatki, kolory i linki do innych tabel (tak .. relacje)
- Kolor (Tylko niektóre produkty)
- Size (X Duży, Duży, SM wszystkie) - tylko dla produktów 8'9'10, kije golfowe mają inną skalę
- Kolor 2. Obroże dla kota mają dwa wybory kolorów.
- Moc
- typ Mocowanie (Mężczyzna, Kobieta)
Tak kończy się to w strasznym bałaganie tabelach Excela które sprawiają, że nie ma sensu do mnie, a nie większego sensu dla ludzi, którzy pracują z dnia produktów w i dzień wolny. Rzucamy ramiona w powietrze i decydujemy się przejść przez katalog, a potem uderza mnie! Czy nie byłoby wspaniale, gdybyś mógł przechowywać dane tak, jak pojawiają się w katalogu !? Tylko kolekcje rekordów na temat każdego produktu, które po prostu wymieniają atrybut tego produktu. Następnie możesz wybrać wspólne atrybuty do indeksowania w celu pobrania w późniejszym terminie. Oczywiście, że to sklep z dokumentami.
Podsumowując, magazyny dokumentów są świetne, gdy masz problem z rzadką macierzą lub obiekty, które zmieniają swoje atrybuty w czasie. Po 2 latach życia w świecie bez SQL nie mogę sobie wyobrazić prawdziwego świata, który nie ma tych funkcji, ponieważ świat wygląda jak sklep z dokumentami.
MongoDB (przynajmniej z mangustą) to _NOT_ nieskalany. –