Jest kilka rzeczy, o których warto tutaj wspomnieć. Porównywanie testów porównawczych jest dość trudne, ponieważ nie można tak naprawdę przetestować wydajności bez testowania konfiguracji MongoDB. W ten sposób można w dużym stopniu dostosowywać i dostosowywać środowisko w celu dostarczania pożądanych rezultatów.
Poza tym trzeba odróżnić wydajność odczytu i zapisu. Na szczególną uwagę zasługuje zastosowany model WriteConcern
. Tak więc, co może być narzutem w wysokości 50% w scenariuszu WriteConcern.NONE
można łatwo obniżyć do mniej niż 5% z WriteConcern.SAFE
.
Tak, na pewno istnieje obciążenie w dowolnej implementacji ODM, ponieważ mapowanie obiektu ma na celu sprawdzenie otrzymania obiektu i ustawienie wartości zwykle za pomocą odbicia. Dlatego kluczowym punktem IMHO jest możliwość dołączania niestandardowych ręcznie kodowanych konwerterów, które możesz chcieć zapewnić dla obiektów krytycznych pod względem wydajności. W przypadku danych wiosennych po prostu zarejestrowanie niestandardowego EntityInstantiator
, który wykonuje new Person(…)
zamiast pozwalać domyślnej magii odbicia daje ogromny wzrost wydajności.
zespół The Spring danych ma build założyć wydajność build ważenia instancji OTS MongoDB dla zapisu przed różnymi WriteConcern
s, a odczytu przez zwykłego kierowcy, MongoTemplate
i abstrakcji repozytoriów. Liczby należy pobierać z przymrużeniem oka, ponieważ czasami pokazują repozytorium odczytujące dane szybciej niż szablony, które w jakiś sposób mają wpływ na infrastrukturę, ponieważ jest to prawie warstwa nad szablonem, ale nie robi tego ". t naprawdę dodaj jakiekolwiek buforowanie.
Czy "R" w ORM nie oznacza "relacyjnej"? – duffymo
Tak, jest to podstawa do mapowania obiektowego/relacyjnego, zwykle używana w relacyjnych bazach danych, ale ogólnie może być używana z dowolnym typem bazy danych. – mtariq
@duffymo w tym przypadku Morphia faktycznie * nie * mapuje relacje między kolekcjami. Kilka wrapperów Ruby ma podobne cechy. –