CQEngine Optimize für kleine DataSets

9

Ich habe eine Anwendung, die flexible Abfragen für Millionen kleinerer Sammlungen mit einer Größe von 10 bis 10000 Elementen pro Sammlung anwenden muss. CQEngine funktioniert hervorragend, wenn es um die Flexibilität geht, diese Sammlungen abzufragen, ist aber viel langsamer als die vorherige, steifere Implementierung, bei der Aggregate über bestimmte Attribute der Elemente in der Sammlung vorverarbeitet wurden. Problem bei dieser Methode ist, dass sie nicht flexibel genug war, um das Hinzufügen neuer Attribute einfach zu handhaben.

Meine Frage ist für die Verarbeitung von Millionen kleinerer Sammlungen. Gibt es irgendwas, was ich tun kann, um CQEngine zu optimieren, um es schneller zu machen?

  1. Sollte ich Indizes hinzufügen oder nur Indizes hinzufügen, wenn die Sammlung eine bestimmte Größe hat.
  2. Ich benutze zur Zeit einen Navigable für den Zeitstempel und den HashIndex für die anderen Attribute wie Kategorie oder Tag.

Irgendwelche Ideen würden sehr geschätzt werden!

    
Nath5 14.09.2016, 14:34
quelle

1 Antwort

0

Offensichtlich hängt das von Ihren Abfragen ab, aber sehen Sie sich Ihre Indizes an, die Sie verwenden. Navigierbar klingt für Zeitstempel ok, obwohl Sie eine Verbindung für die Teile des Zeitstempels (Jahr, dann Monat, Tag usw.) machen könnten.

Ermitteln Sie die Kardinalität der verschiedenen Attribute Ihrer Objekte und priorisieren Sie die Indizierung durch Hashes für hochkarätige Gegenstände und Bäume für die unteren Kardinalattribute.

    
ZagNut 23.09.2016 15:55
quelle

Tags und Links