Hacker News Digest

17 августа 2025 г. в 17:52 • clickhouse.com • ⭐ 93 • 💬 33

OriginalHN

#clickhouse#postgresql#sql#database#performance#benchmark#acid#mvv

ClickHouse matches PG for single-row UPDATEs and 4000 x faster for bulk UPDATEs

ClickHouse vs PostgreSQL: UPDATE-скорость

  • Коротко: на одном железе ClickHouse догоняет PostgreSQL в одиночных UPDATE и в 4 000 раз быстрее при массовых.
  • Почему: колоночное хранилище + параллелизм ClickHouse выигрывает у строкового PostgreSQL при поиске и перезаписи миллионов строк.
  • Но: PostgreSQL всегда транзакционен; ClickHouse — нет, поэтому сравнение по «родным» режимам, а не по ACID.

Что мерили

  • 1 строка: UPDATE orders SET status='shipped' WHERE id=1234567
  • 1 млн строк: UPDATE orders SET discount=0.1 WHERE order_date<'2023-01-01'

Аппаратура

  • c6i.8xlarge (32 vCPU, 64 ГБ RAM, gp3 SSD)
  • PostgreSQL 16.4 (дефолт + fillfactor=90, checkpoint_timeout=30 min)
  • ClickHouse 25.7 (дефолт)

Результаты

метрика PostgreSQL ClickHouse
1 строка, мс 0.12 0.11
1 млн строк, сек 120 0.03
CPU, % 100 2800
чтение, ГБ 30 0.8

Почему так

  • Поиск: ClickHouse читает только нужные колонки, фильтрует за счёт индексов и распараллеливает на все ядра.
  • Запись: обе СУБД пишут новые версии строк (MVCC), но PostgreSQL переписывает целые страницы, а ClickHouse — только изменённые куски колонок.
  • Фоновая работа: PostgreSQL ждёт checkpoint’а, ClickHouse сразу сортирует и сжимает куски.

Когда выбирать

  • Нужны транзакции и row-level locks → PostgreSQL.
  • Нужны массовые обновления аналитических данных → ClickHouse.

Код и данные

GitHub