Was ist die fundmental Unterschied zwischen MongoDB / NoSQL ermöglicht das schnellere aggregation (MapReduce) im Vergleich zu MySQL

Gruß!

Ich habe Folgendes problem. Ich habe eine Tabelle mit riesigen Anzahl von Zeilen die ich brauche, um Suche und dann Gruppe Suche Ergebnisse durch viele Parameter. Lassen Sie uns sagen, in der Tabelle ist

id, big_text, price, country, field1, field2, ..., fieldX

Und wir laufen eine Anfrage wie diese

SELECT .... WHERE 
[use FULLTEXT index to MATCH() big_text] AND 
[use some random clauses that anyway render indexes useless, 
like: country IN (1,2,65,69) and price<100]

Wir werden als Suchergebnisse angezeigt werden, und dann müssen wir diese Suchergebnisse und gruppieren Sie Sie durch eine Anzahl von Feldern zu erzeugen Suchfilter

(results) GROUP BY field1
(results) GROUP BY field2
(results) GROUP BY field3
(results) GROUP BY field4

Dies ist ein Vereinfachtes Beispiel dafür, was ich brauche, ist die eigentliche Aufgabe bei der hand ist, noch problematischer ist, dass zum Beispiel manchmal die Ergebnisse der ersten Abfrage funktioniert auch seiner eigenen FRAKTION DURCH. Und Beispiel für eine solche Funktionalität wäre diese Website
http://www.indeed.com/q-sales-jobs.html
(Suche-Ergebnisse sowie Filter auf der linken Seite)

Ich getan habe und noch tun einem tiefen Forschung auf, wie MySQL-Funktionen und an diesem Punkt bin ich vollkommen sehe das nicht möglich in MySQL. Grob gesprochen MySQL-Tabelle ist nur ein Haufen Zeilen liegen auf HDD und Indizes sind kleine Versionen dieser Tabellen sortiert nach dem index-Feld(s) und zeigt auf die tatsächlichen Zeilen. Das ist eine super starke Vereinfachung natürlich, aber der Punkt ist, ich weiß nicht, wie es möglich ist, dies überhaupt zu beheben, wie z.B. der Verwendung von mehr als einem index, in der Lage sein zu tun schnell GRUPPE DURCH-s (zur Zeit der Abfrage erreicht GROUP BY-index ist völlig nutzlos, weil der Bereich sucht und andere Dinge). Ich weiß, dass MySQL (oder ähnliche Datenbanken) haben verschiedene hilfreiche Dinge wie index zusammengeführt, lockere index durchsucht und so, aber das ist einfach nicht angemessen - die Abfragen oben wird noch ewig dauern, bis auszuführen.

Mir wurde gesagt, dass das problem gelöst werden können, NoSQL, die radikal neue Möglichkeiten der Speicherung und den Umgang mit Daten, einschließlich der aggregation von Aufgaben. Was ich wissen möchte ist, einige kurze, schematische Erklärung, wie es dies tut. Ich meine, ich will nur einen kurzen Blick auf Sie, so dass ich wirklich sehen konnte, dass es funktioniert, weil im moment kann ich nicht verstehen, wie es möglich ist, zu tun. Ich meine, die Daten sind immer noch Daten und im Speicher und Indizes sind immer noch Indizes mit all Ihrer Einschränkung. Wenn dies in der Tat möglich ist, werde ich dann anfangen zu studieren, NoSQL im detail.

PS. Bitte erzählen Sie mir nicht, zu gehen und Lesen Sie ein großes Buch über NoSQL. Hab ich schon gemacht, dieses für MySQL, nur um herauszufinden, dass es nicht brauchbar in meinem Fall 🙂 Also ich wollte einen vorläufigen Verständnis der Technologie vor dem aufstehen ein großes Buch.

Dank!

InformationsquelleAutor Eugene | 2012-03-22
Schreibe einen Kommentar