Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann der schnellste Weg zum Abrufen, Zwischenspeichern und Durchsuchen großer Mengen mehrstufiger klassifizierter Daten gestaltet werden?

Wie kann der schnellste Weg zum Abrufen, Zwischenspeichern und Durchsuchen großer Mengen mehrstufiger klassifizierter Daten gestaltet werden?

WBOY
WBOYOriginal
2016-12-01 00:56:491257Durchsuche

1. Große Datenmenge
3. Alle Daten müssen zuerst abgerufen werden
4 unabhängig von der Ebene erhalten werden. Alle übergeordneten und untergeordneten Elemente, die dem Suchnamen entsprechen, sind rot markiert)

Jetzt verwende ich eine Methode, um alle Daten abzurufen und später alle Kategorie-IDs und ihre übergeordneten Teilmengen zusammenzusuchen. Dann müssen beispielsweise alle Daten vorhanden sein von Duplikaten. Ich entferne die Duplikate und rufe dann alle Informationen über diese IDs ab, ändere sie dann, um die Schriftfarbe zu ändern, die der Suche entspricht (gemeinsam mit der Suche), und recycele sie schließlich, um sie in einer Baumstrukturdaten zu kombinieren

Da die Datenmenge groß ist, denke ich, dass die alte Schleife langsam sein könnte

Wie kann ich es optimieren, indem ich zwei separate Methoden zum Suchen und Initialisieren aller Daten schreibe?

Außerdem habe ich einen Cache hinzugefügt, damit ich ihn nicht jedes Mal erneut überprüfen muss, wenn ich ihn initialisiere. Aber wenn ich suche, muss ich ihn natürlich trotzdem überprüfen Vielleicht ist es besser, wenn das Datenvolumen klein ist, aber die Anzahl der Zyklen zu groß ist. Gibt es eine Möglichkeit, den Cache zweimal zu durchsuchen? S-Methoden-Cache des Thinkphp-Frameworks

Danke fürs Teilen

Antwortinhalt:

1. Große Datenmenge

3. Alle Daten müssen zuerst abgerufen werden
Es gibt eine Suchfunktion, nachdem alle Daten abgerufen wurden unabhängig von der Ebene erhalten. Alle übergeordneten und untergeordneten Elemente, die mit dem Suchnamen übereinstimmen, sind rot markiert)

Jetzt verwende ich eine Methode, um alle Daten abzurufen und später alle Kategorie-IDs und ihre übergeordneten Teilmengen zusammenzusuchen. Anstatt die Suche zu starten, müssen jetzt viele Daten vorhanden sein Ich entferne die Duplikate über diese IDs, ändere dann die Schriftfarbe, die mit der Suche übereinstimmt, und kombiniere sie schließlich in einer Schleife zu Baumstrukturdaten

Da die Datenmenge groß ist, habe ich das Gefühl, dass die alte Schleife möglicherweise langsam ist

Wie kann ich es optimieren, indem ich zwei separate Methoden zum Suchen und Initialisieren aller Daten schreibe?

Außerdem habe ich einen Cache hinzugefügt, damit ich ihn nicht jedes Mal erneut überprüfen muss, wenn ich ihn initialisiere. Aber wenn ich suche, muss ich ihn natürlich trotzdem überprüfen Vielleicht ist es besser, wenn das Datenvolumen klein ist, aber die Anzahl der Zyklen zu groß ist. Gibt es eine Möglichkeit, den Cache zweimal zu durchsuchen? S-Methoden-Cache des Thinkphp-Frameworks

Danke fürs Teilen


    Glauben Sie nicht, dass Schleifen in den meisten Fällen mehrere Größenordnungen schneller sind als Datenbankabfragen, es sei denn, Sie verwenden Schleifen, um die Datenbank abzufragen
  1. Wenn select...in auf den Primärschlüssel oder Index trifft, liegt die Ergebnismenge innerhalb weniger Hundert und die Effizienz ist immer noch akzeptabel. Sie können es basierend auf Ihrer tatsächlichen Situation verwenden
  2. Wenn die Datenmenge wirklich groß ist, es viele Filterbedingungen gibt und eine Wortsegmentierungssuche vorhanden ist, ziehen Sie bitte die Verwendung von Suchmaschinen, ElasticSearch, Sphinx usw. in Betracht.
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn