Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Używanie indeksu wyszukiwania Solr jako bazy danych - czy to źle?

Tak, możesz używać SOLR jako bazy danych, ale jest kilka naprawdę poważnych zastrzeżeń:

  1. Najpopularniejszy wzorzec dostępu SOLR, który jest przez http, nie reaguje szczególnie dobrze na zapytania wsadowe. Co więcej, SOLR NIE przesyła strumieniowo danych --- więc nie możesz leniwie przeglądać milionów rekordów na raz. Oznacza to, że musisz być bardzo rozważny podczas projektowania wzorców dostępu do danych na dużą skalę za pomocą SOLR.

  2. Chociaż wydajność SOLR skaluje się w poziomie (więcej komputerów, więcej rdzeni itp.), a także w pionie (więcej pamięci RAM, lepsze komputery itp.), jego możliwości zapytań są poważnie ograniczone w porównaniu z dojrzałymi RDBMS . To powiedziawszy, istnieje kilka doskonałych funkcji, takich jak zapytania o statystyki pola, które są całkiem wygodne.

  3. Deweloperzy przyzwyczajeni do korzystania z relacyjnych baz danych często napotykają problemy, gdy używają tych samych wzorców projektowych DAO w paradygmacie SOLR, ze względu na sposób, w jaki SOLR używa filtrów w zapytaniach. Istnieje krzywa uczenia się umożliwiająca opracowanie odpowiedniego podejścia do tworzenia aplikacji wykorzystującej SOLR do części dużych zapytań lub modyfikacji stanowych .

  4. Narzędzia „enterprisy”, które pozwalają na zaawansowane zarządzanie sesjami i encje stanowe, które wiele zaawansowanych platform internetowych (Ruby, Hibernate, ...) będzie musiało zostać całkowicie wyrzuconych przez okno .

  5. Relacyjne bazy danych mają za zadanie radzić sobie ze złożonymi danymi i relacjami – dlatego towarzyszą im najnowocześniejsze metryki i zautomatyzowane narzędzia analityczne. W SOLR zauważyłem, że piszę takie narzędzia i często ręcznie przeprowadzam testy warunków skrajnych, co może być stratą czasu .

  6. Łączenie:to jest wielki zabójca. Relacyjne bazy danych obsługują metody budowania i optymalizacji widoków oraz zapytań, które łączą krotki na podstawie prostych predykatów. W SOLR nie ma żadnych niezawodnych metod łączenia danych między indeksami.

  7. Odporność :W celu zapewnienia wysokiej dostępności SolrCloud wykorzystuje pod spodem rozproszony system plików (tj. HCFS). Ten model jest zupełnie inny niż w przypadku relacyjnej bazy danych, która zwykle zapewnia odporność przy użyciu urządzeń podrzędnych i nadrzędnych, macierzy RAID i tak dalej. Musisz więc być gotowy do zapewnienia infrastruktury odpornościowej wymaganej przez SOLR, jeśli chcesz, aby była skalowalna w chmurze i odporna.

To powiedziawszy - istnieje wiele oczywistych zalet SOLR w przypadku niektórych zadań:(patrz http://wiki. apache.org/solr/WhyUseSolr ) — luźne zapytania są znacznie łatwiejsze do uruchomienia i zwracają sensowne wyniki. Indeksowanie odbywa się domyślnie, więc większość dowolnych zapytań działa dość efektywnie (w przeciwieństwie do RDBMS, gdzie często trzeba optymalizować i denormalizować po fakcie).

Wniosek: Nawet jeśli MOŻESZ używać SOLR jako RDBMS, może się okazać (tak jak ja), że ostatecznie „nie ma darmowego lunchu” – i oszczędności kosztów super-fajnego wyszukiwania tekstowego lucene i wysokiej wydajności indeksowania w pamięci, są często opłacane przez mniejszą elastyczność i przyjęcie nowych przepływów pracy z dostępem do danych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL GROUP BY dwie kolumny

  2. Kolumna aktualizacji MySQL z innej kolumny w tej samej tabeli

  3. Czy jest jakiś sens używania MySQL LIMIT 1 podczas zapytań o pole indeksowane/unikalne?

  4. Wyszukiwanie kolumny zawierającej dane CSV w tabeli MySQL pod kątem istnienia wartości wejściowych

  5. Jak sortować wiersze tabeli HTML, które są wywoływane z MySQL