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
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
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.
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
- 1. Wie kann man die Leistung von Liferay 6.2 verbessern?
- 2. Verbessern Sie die Leistung
- 3. Kann Const-Korrektheit die Leistung verbessern?
- 4. Langsam MySQL-Abfrage - wie die Leistung verbessern
- 5. Emacs: Wie kann ich Ido-Leistung verbessern?
- 6. Excel: Kann die Verwendung externer Links die Leistung verbessern?
- 7. Wie kann ich die Leistung des RichFaces ScrollableDataTable-Steuerelements verbessern?
- 8. Wie kann ich die WMI-Leistung in .NET verbessern?
- 9. Wie kann man die Webpack/Babel-Build-Leistung verbessern, ohne die Watch-Funktion zu verwenden?
- 10. Verbessern LINQ Leistung
- 11. Wie kann ich die Leistung dieses LINQ verbessern?
- 12. wie ich die Leistung in Jquery verbessern kann
- 13. Wie kann ich die WMI-Leistung mithilfe von Delphi verbessern?
- 14. Verbessern Sie die Leistung einer ASP.NET-Anwendung
- 15. Wie kann ich die Hibernate-Leistung in Java verbessern?
- 16. Wie kann man den HOG-Detektor mit linearer SVM-Leistung für die Autoerkennung verbessern?
- 17. Wie kann man die Golang-Übersetzungsgeschwindigkeit verbessern?
- 18. Wie kann man die Vec-Initialisierungszeit verbessern?
- 19. WPF DataGrid-Leistung verbessern
- 20. Verbessern Sie die Leistung benutzerdefinierte Fortschrittsbalken Animation
- 21. jQuery-Vorlage Leistung verbessern
- 22. Verbessern der Leistung von Numpy
- 23. Verschachtelte Ansicht verlangsamt Leistung, Auf der Suche nach einer Möglichkeit, die Leistung zu verbessern
- 24. jQuery - Verbessern der Leistung/Code
- 25. Verbessern Sie die Leistung durch Multithreading
- 26. Datenbank-Handling von Web-Service - wie die Leistung zu verbessern?
- 27. So verbessern Sie die Leistung von jqGrid
- 28. Verbessern Sie die sqlite-Leistung in yii
- 29. Leistung von Doppeln zu verbessern - java
- 30. Verbessern Sie die Leistung von Efeu Lösung