Обзор
Что отключается в режиме производительности
Включение режима производительности
Использование объекта config
Использование функций на уровне модуля
Использование сокращённых импортов
Включение режима производительности автоматически устанавливает движок выполнения
chdb. Отдельно вызывать config.use_chdb() не нужно.Когда использовать режим производительности
- Обрабатываете большие наборы данных (от сотен тысяч до миллионов строк)
- Запускаете рабочие нагрузки с интенсивной агрегацией (groupby, sum, mean, count)
- Порядок строк не имеет значения (например, для агрегированных результатов, отчетов и панелей мониторинга)
- Вам нужна максимальная пропускная способность SQL и минимальные накладные расходы
- Вас беспокоит использование памяти (параллельное чтение Parquet, без промежуточных
DataFrame)
- Вам нужно точное поведение pandas (порядок строк, MultiIndex, dtypes)
- Для вас важно, чтобы
first()/last()возвращали действительно первую/последнюю строку - Вы используете
shift(),diff(),cumsum(), которые зависят от порядка строк - Вы пишете тесты, сравнивающие вывод DataStore с pandas
Различия в поведении
Порядок строк
- Результаты фильтрации
- Результаты агрегирования GroupBy
head()/tail()без явногоsort_values()- Агрегации
first()/last()
sort_values():
Результаты GroupBy
Агрегация
Выполнение одним SQL-запросом
ColumnExpr (например, ds[condition].groupby('col')['val'].sum()) выполняется как один SQL-запрос, а не в два этапа, как в режиме pandas:
Сравнение с движком выполнения
compat_mode) и движок выполнения (execution_engine) — независимые параметры конфигурации:
При установке
compat_mode='performance' параметр execution_engine автоматически получает значение chdb, поскольку режим производительности предназначен для выполнения SQL.
Тестирование в режиме производительности
Сортировка с последующим сравнением (агрегации, фильтры)
Проверка диапазона значений (первое/последнее)
Схема и количество строк (LIMIT без ORDER BY)
Рекомендации
1. Включайте в самом начале скрипта
2. Явно задавайте сортировку, когда важен порядок
3. Используйте для пакетных и ETL-нагрузок
4. Переключение режимов в сеансе
- Движок выполнения — Выбор движка (auto/chDB/pandas)
- Руководство по производительности — Общие рекомендации по оптимизации
- Основные отличия от pandas — Различия в поведении