Ich muss bis zu 500.000 Einträge für den schnellsten Lesevorgang indizieren. Der Index muss regelmäßig auf der Festplatte neu erstellt werden. Ich versuche, zwischen einer einfachen Datei wie einem Hash auf Datenträger oder einer einzelnen Tabelle in einer eingebetteten Datenbank zu entscheiden. Ich brauche keine RDBMS-Engine.Was ist der beste Weg, um einen Index zu erstellen, um die schnellste Leseantwort zu erhalten?
Antwort
Ich gehe davon aus, Sie beziehen sich auf Indizierung Tabellen auf einem relationalen DBMS (wie mySql, Oracle oder Postgres).
Indizes sind sekundäre Datenspeicher, die eine Teilmenge von Feldern für eine Tabelle in einer bestimmten Reihenfolge speichern.
Wenn Sie einen Index erstellen, wird jede Abfrage, die die Teilmenge von Feldern enthält, die in ihrer WHERE-Klausel indiziert sind, schneller ausgeführt.
Durch das Hinzufügen von Indizes wird jedoch die INSERT-Leistung reduziert.
Im Allgemeinen müssen Indizes nicht neu erstellt werden, es sei denn, sie werden beschädigt. Sie sollten im laufenden Betrieb von Ihrem DBMS verwaltet werden.
Wenn die Daten nicht vollständig aktuell sein müssen, sollten Sie auch über ein Data Warehousing-Tool für OLAP-Zwecke nachdenken (z. B. MSOLAP). Sie können blitzschnelle schreibgeschützte Abfragen basierend auf vorberechneten Daten durchführen.
Vielleicht BDB? Es ist eine hohe Leistung. Datenbank, die kein DBMS verwendet.
Wenn Sie Zustandsobjekte mit Schlüssel speichern, wie wäre es mit Berkeley DB.
cdb wenn sich die Daten nicht ändern.
/Allan
PyTables Pro behauptet, dass „für Situationen, die schnellen Änderungen oder Löschungen nicht benötigen, OPSI ist wahrscheinlich eines der besten Indizierung Motoren zur Verfügung“. Ich habe jedoch nicht persönlich daran gewöhnt, aber die F/OSS-Version von PyTables gibt bereits gibt Ihnen eine gute Leistung:
- 1. Was ist der beste Weg, um einen Nutch Index aufzufrischen?
- 2. Was ist der beste Weg, um eine Sitemap zu erstellen?
- 3. Was ist der beste Weg, um einen Datenrahmen zu umgehen?
- 4. Was ist der beste Weg, um einen "Timer" zu implementieren?
- 5. Was ist der beste Weg, um einen ByteArrayOutputStream zu schließen?
- 6. Was ist der beste Weg, um einen InputStream zu überwachen?
- 7. Was ist der schnellste Weg, um eine Datenzeile zu erfassen?
- 8. Was ist der schnellste Weg, um zu rehasen?
- 9. Was ist der beste Weg, um einen Stream um
- 10. Was ist der schnellste Weg, um die höchste Dezimalstelle einer ganzen Zahl zu erhalten?
- 11. Was ist der beste Weg, um eine Filmdatenbank zu erstellen und zu pflegen?
- 12. Was ist der beste Weg, um einen eindeutigen Schlüssel zu erstellen und dauerhaft zu verschlüsseln?
- 13. Was ist der beste Weg, PHP-Anwendungen zu erhalten?
- 14. Was ist der beste Weg, um vorberechnete Daten zu implementieren?
- 15. Der effizienteste Weg, um einen Index in Postgres zu erstellen
- 16. Was ist der schnellste Weg, um einen Link zur finalen URL zu erstellen?
- 17. Haben Sie einen Bilddateipuffer im Speicher? Was ist der schnellste Weg, um ein Miniaturbild zu erstellen?
- 18. Was ist der beste Weg, um ähnliche Strings zu bearbeiten?
- 19. Was ist der schnellste Weg, um die benötigten Informationen von MSDN zu erhalten?
- 20. In ASP.NET, was ist der schnellste Weg, um die Basis URl für eine Anfrage zu erhalten?
- 21. Was ist der "schnellste" Weg, um einen Screenshot eines bestimmten Fensters unter Linux programmatisch zu erstellen?
- 22. Was ist der beste Weg, um eine Tabelle zu deduplizieren?
- 23. Was ist der beste Weg, um eine Enumeration zu erhöhen?
- 24. Was ist der schnellste Weg, um die Vereinigung vieler Boost :: Polygone zu erstellen?
- 25. Was ist der beste Weg, um mehrere Aktionen zu behandeln?
- 26. Was ist der beste Weg, um eine Animation zu fahren?
- 27. Was ist der beste Weg, um eine Liste zu kopieren?
- 28. Was ist der beste Weg, um eine Zeichenfolge aufzuteilen, um alle Teilstrings von Ruby zu erhalten?
- 29. Was ist der beste Weg, um mehrere Suchoptionen zu behandeln?
- 30. Was ist der richtige Weg, um zwei Int-Werte zu teilen, um einen Float zu erhalten?
Was ist das? Ist dies innerhalb eines Datenbankverwaltungssystems (MySQL, etc.?) Indexieren Sie flache Dateien auf der Festplatte? Sind sie binär oder ASCII? Was ist los? –
Es kann eine flache Datei sein. Einträge sind ASCII und bis zu 512 Zeichen. Ich muss speichern und ein Zustandsattribut erhalten. – Notitze