или авторизуйтесь, если у вас он уже есть
- Введение - в любой предметной области есть поиск дублей.
- При появлении такой задачи обычно приходит старший инженер и говорит: «Ну возьми поля, посчитай хеш, накинь индекс». А почему именно так? Давайте разбираться
- Постановка задачи (поиск дублей в БД на 1млн записей по 10-ти полям с SLA)
- Описание процесса сравнения. N полей - это N операций сравнения * M записей
- Методология бенчмарка (кол-во записей в БД, реализации: составной индекс vs поле с хэшом). Сравниваем TPS по pg_bench, скорость вставки с помощью .NET, проверяем размеры индексов
- Подход 1: без индекса
- Подход 2: составной индекс по полям
- Подход 3: поле с хэшом
- Промежуточные выводы
- Подход 4: hash index + bytea
- Выводы по ПГ
- Оптимизировали БД? Переходим к коду на .NET
- Сравнение алгоритмов хэширования
- Убираем лишние аллокации
- Общие итоги