Перейти к основному содержанию
Перейти к основному содержанию

Производительность и оптимизация

В этом разделе приведены рекомендации и лучшие практики по улучшению производительности при работе с ClickHouse. Мы рекомендуем пользователям сначала ознакомиться с разделом Основные концепции, в котором рассмотрены ключевые понятия, необходимые для оптимизации производительности.

TopicDescription
Query optimization guideНачните отсюда, чтобы освоить основы оптимизации запросов, включая типовые сценарии и приёмы повышения производительности для ускорения выполнения запросов.
Primary indexes advanced guideПодробный разбор уникальной разреженной системы первичных индексов ClickHouse, её отличий от традиционных СУБД и лучших практик построения оптимальных индексов.
Query parallelismУзнайте, как ClickHouse распараллеливает выполнение запросов с помощью processing lanes и настройки max_threads, а также как анализировать и оптимизировать параллельное выполнение.
Partitioning keyОсвойте выбор ключа партиционирования, чтобы значительно повысить производительность запросов за счёт эффективного отсечения сегментов данных и избегания типичных ошибок партиционирования.
Data skipping indexesСтратегически применяйте вторичные индексы для пропуска нерелевантных блоков данных и ускорения фильтрующих запросов по неключевым столбцам.
PREWHERE optimizationРазберитесь, как PREWHERE автоматически снижает нагрузку на I/O, отфильтровывая данные до чтения ненужных столбцов, а также как отслеживать эффективность этого механизма.
Bulk insertsМаксимизируйте пропускную способность ингестии и снижайте накладные расходы на ресурсы за счёт эффективной пакетной вставки данных.
Asynchronous insertsПовышайте производительность вставок, используя серверное пакетирование для уменьшения сложности на стороне клиента и увеличения пропускной способности при частых вставках.
Avoid mutationsПроектируйте процессы «только на добавление» (append-only), исключая дорогостоящие операции UPDATE и DELETE при сохранении точности данных и производительности.
Avoid nullable columnsСнижайте объём хранения и улучшайте производительность запросов, используя значения по умолчанию вместо столбцов типа Nullable, когда это возможно.
Avoid OPTIMIZE FINALРазберитесь, когда следует и когда не следует использовать OPTIMIZE TABLE FINAL.
AnalyzerИспользуйте новый анализатор запросов ClickHouse для выявления узких мест производительности и оптимизации планов выполнения запросов для повышения эффективности.
Query profilingПрименяйте профилировщик запросов на основе выборки (sampling query profiler) для анализа шаблонов выполнения запросов, выявления горячих точек производительности и оптимизации использования ресурсов.
Query cacheУскоряйте часто выполняемые запросы SELECT с помощью включения и настройки встроенного кэша результатов запросов в ClickHouse.
Testing hardwareЗапускайте бенчмарки производительности ClickHouse на любом сервере без установки, чтобы оценить характеристики оборудования. (Не применимо к ClickHouse Cloud)