Top.Mail.Ru
Разработка
C#
Эффективная дедупликация данных в связке .NET и PostgreSQL
3 октября
11.40-12.10
Green 4. Разработка

- Введение - в любой предметной области есть поиск дублей.

- При появлении такой задачи обычно приходит старший инженер и говорит: «Ну возьми поля, посчитай хеш, накинь индекс». А почему именно так? Давайте разбираться

- Постановка задачи (поиск дублей в БД на 1млн записей по 10-ти полям с SLA)

- Описание процесса сравнения. N полей - это N операций сравнения * M записей

- Методология бенчмарка (кол-во записей в БД, реализации: составной индекс vs поле с хэшом). Сравниваем TPS по pg_bench, скорость вставки с помощью .NET, проверяем размеры индексов

- Подход 1: без индекса

- Подход 2: составной индекс по полям

- Подход 3: поле с хэшом

- Промежуточные выводы

- Подход 4: hash index + bytea

- Выводы по ПГ

- Оптимизировали БД? Переходим к коду на .NET

- Сравнение алгоритмов хэширования

- Убираем лишние аллокации

- Общие итоги