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?
Irgendwelche Ideen würden sehr geschätzt werden!
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.