sql >> Databáze >  >> RDS >> Mysql

Použití vyhledávacího indexu Solr jako databáze - je to špatně?

Ano, můžete použít SOLR jako databázi, ale existuje několik opravdu vážných upozornění:

  1. Nejběžnější přístupový vzor SOLR, který je přes http, nereaguje zvláště dobře na dávkové dotazování. Navíc SOLR NEstreamuje data --- takže nemůžete líně procházet miliony záznamů najednou. To znamená, že při navrhování vzorů přístupu k datům ve velkém měřítku pomocí SOLR musíte být velmi ohleduplní.

  2. Ačkoli se výkon SOLR škáluje horizontálně (více strojů, více jader atd..) i vertikálně (více RAM, lepší stroje atd.), jeho možnosti dotazování jsou ve srovnání s vyspělými RDBMS značně omezené . To znamená, že existují některé vynikající funkce, jako jsou dotazy na statistiky polí, které jsou docela pohodlné.

  3. Vývojáři, kteří jsou zvyklí používat relační databáze, často narazí na problémy, když použijí stejné návrhové vzory DAO v paradigmatu SOLR, kvůli způsobu, jakým SOLR používá filtry v dotazech. Pro vývoj správného přístupu k sestavení aplikace, která používá SOLR pro část svých velkých dotazů nebo stavových úprav, proběhne křivka učení .

  4. "Podnikové" nástroje, které umožňují pokročilou správu relací a stavové entity, které nabízí mnoho pokročilých webových rámců (Ruby, Hibernate, ...), budou muset být zcela vyhozeny z okna .

  5. Relační databáze se mají zabývat komplexními daty a vztahy – a jsou proto doprovázeny nejmodernějšími metrikami a automatizovanými analytickými nástroji. V SOLR jsem zjistil, že píšu takové nástroje a hodně manuálně testuji zátěž, což může být zdlouhavé .

  6. Spojení:to je velký zabiják. Relační databáze podporují metody pro vytváření a optimalizaci pohledů a dotazů, které spojují n-tice na základě jednoduchých predikátů. V SOLR neexistují žádné robustní metody pro spojování dat napříč indexy.

  7. Odolnost:Pro vysokou dostupnost používá SolrCloud pod sebou distribuovaný souborový systém (tj. HCFS). Tento model je zcela odlišný od modelu relační databáze, která obvykle zajišťuje odolnost pomocí slave a master nebo RAID a tak dále. Takže musíte být připraveni poskytnout infrastrukturu odolnosti, kterou SOLR vyžaduje, pokud chcete, aby byla cloud škálovatelná a odolná.

To znamená, že SOLR má pro určité úkoly spoustu zjevných výhod:(viz http://wiki. apache.org/solr/WhyUseSolr ) -- volné dotazy se spouštějí mnohem snadněji a vracejí smysluplné výsledky. Indexování se provádí standardně, takže většina libovolných dotazů běží docela efektivně (na rozdíl od RDBMS, kde musíte často optimalizovat a denormalizovat až poté).

Závěr: I když MŮŽETE používat SOLR jako RDBMS, můžete zjistit (jako já), že nakonec neexistuje „žádný oběd zdarma“ – a úspora nákladů na super skvělé lucene textové vyhledávání a vysoce výkonné indexování v paměti, jsou často placeny menší flexibilitou a přijetím nových pracovních postupů pro přístup k datům.



  1. Kde mohu získat aplikaci pro chatovací místnost PHP / MYSQL

  2. Kontrola prázdného výsledku (PHP, PDO a MySQL)

  3. MySQL Query – získávání chybějících záznamů při použití skupin po skupinách

  4. Celý proces obnovení databáze SQL Server z příkazového řádku