Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Langsame Assoziationen in SequelizeJS

Sequelize wird langsamer, wenn Sie :M-Beziehungen zu Ihrem Include hinzufügen. :M-Beziehungen führen zu doppelten Zeilen in Ihrem SQL-Ergebnis, also müssen wir Zeit damit verbringen, das zu deduplizieren und es in Modelle zu parsen.

Für eine optimale Leistung könnten Sie Ihre :1-Beziehungen in Ihrem Include belassen, aber das :M in separaten Abfragen ausführen.

Natürlich kann auch die Abfrage selbst langsam sein, aber höchstwahrscheinlich ist dies das Ergebnis des Sequelize-Overheads - Versuchen Sie, die Abfrage direkt in der Datenbank auszuführen.

(Disclaimer:Sequelize Core Developer)

Welche Version hast du? Die anfängliche Zahl, die Sie gemeldet haben, klingt hoch, aber wir haben von diesen Zahlen gehört, bevor wir einige Optimierungen vorgenommen haben. Versuchen Sie, sie mit dem neuesten Git-Master zu testen.

Wir arbeiten ständig daran, den Code für diese Szenarien zu optimieren, aber die Deduplizierung von 20.000 Zeilen auf 5.000 Zeilen erfordert immer einige CPU-Zyklen.