Когда вы выполняете ваш запрос, sequelize выполнит SELECT
в базовой базе данных.
Затем последовательно произойдут две вещи:
MariaDB загрузит все данные, соответствующие вашим критериям
MariaDB отправит все данные для продолжения, которые будут:
- Перегрузить память вашего приложения (все данные будут сохранены в node.js памяти)
- Cra sh продолжение, потому что он не предназначен для обработки такого большого количества данных
Когда вы выполняете запрос к огромному набору данных, используйте курсоры . С помощью курсоров MariaDB загрузит все данные, но затем sequelize получит данные по группе (Например, секвелируйте загрузку 100 данных, вы обрабатываете их, затем снова загружаете 100 данных, что означает, что на вершине вы будете иметь загружено 100 данных в вашу node.js память) .
https://github.com/Kaltsoon/sequelize-cursor-pagination
https://mariadb.com/kb/en/cursor-overview/