Как вы сказали, DolphinDB не должен загружать все данные в память одновременно при обработке многораздельной таблицы. Возьми свой пример. Необходимо обработать около 2500 разделов и предположить, что на вашем рабочем столе 8 гиперпотоков. DolphinDB загружает до 8 разделов в память и обрабатывает их одновременно. То есть пиковое использование памяти не должно превышать 200M * 8 плюс некоторая рабочая память. DolphinDB - это колоночная база данных, и она загружает только необходимый столбец в раздел. Таким образом, использование памяти намного меньше, чем 200M * 8 в вашем случае, потому что расчет включает только один столбец.
Позвольте мне также объяснить механизм кэширования DolphinDB. После выполнения вычислений на разделе DolphinDB не будет немедленно освобождать кэш раздела из памяти. Когда использование памяти достигает установленного предела (установленного maxMemSize
), DolphinDB начинает извлекать кеш.