2010-11-20 11 views
0

Ich möchte etwas wie das Suchen auf Wiki implementieren, wenn ich "Apfel" suchen möchte, gebe ich ein "a" es zeigt die Wörter beginnen von "a" ... Ich weiß, dass es implementieren kann, wenn ich tippe, sende ich Eine SQL-Abfrage, um den Artikel zu suchen, beginnt mit "a", aber wenn mehr und mehr Abfragen angefordert werden, wird es langsam ... ... Gibt es eine Performance-Wende-Technik, um diese Art von Dingen zu tun? Vielen Dank.Art und Suche, wie kann man die Leistung verbessern?

Antwort

2

Auf der Serverseite sollten Sie die Ergebnisse zwischenspeichern, idealerweise im Speicher (z. B. Memcached). Wenn also 10 Personen "a" drücken, wird nur eine Abfrage an die Datenbank und 9 superschneller Datenzugriff vom Speicher ausgeführt.

Wie für die Bandbreitenoptimierung sollten Sie Ihre Daten in JSON oder alternativ einige benutzerdefinierte Datenformat senden. Sehen Sie diesen tollen Artikel: Building Fast Client-side Searches

1

nicht sicher, welche Version von SQL Sie verwenden, um nur einige Annahmen:

  • Sie einen Index, den Sie auf dem Feld haben suchen
  • Sie nur das benötigte Feld zurückkehren (wie Titel), nicht SELECT *

Was würde ich empfehlen, erwägen die Anzahl der Zeilen reduziert zurückgegeben von der Größe der Suchabfrage abhängig, so etwas wie: (Pseudo-Code, weiß nicht, SQL-Dialekt)

Die kleineren Suchvorgänge werden wahrscheinlich viel mehr Zeilen zurückgeben, aber die meisten Benutzer geben wahrscheinlich mehrere Buchstaben ein, bevor sie mit der Eingabe aufhören. Geben Sie also für die ersten Abfragen nicht alle Zeilen zurück.

0

keine technische Antwort eines vielleicht offensichtlich, aber für die Client-Seite denke ich, Sie Ihre Suche Veranstaltung starten können nicht auf der Taste drücken, aber nach X Millisekunden nach dem Tastendruck und mit der Bedingung, dass nichts ist verändert.

Also, wenn ich ein „Wort“ suchen möchten, und i-Typ „w“ „o“ „r“ „d“ in einer schnellen Art und Weise nur Sie une Anfrage machen und natürlich können Sie diese Anforderung SQL Art und Weise optimieren

Verwandte Themen