У меня есть база данных, полная объявлений о продаже компьютеров, которые пришли со многих разных сайтов. База данных заполняется XML-файлами, которые поступают с отдельных сайтов рекламы, а затем анализируются и помещаются в центральную таблицу базы данных.
Файлы XML имеют следующие атрибуты для каждого компьютера: Марка, Модель, Размер HD, Размер ОЗУ, Скорость процессора, Цена, Расположение и т. Д.
В таблице центральной базы данных есть те же столбцы, плюс дополнительная в начале, которая является идентификатором поля для нашего собственного использования.
Поскольку объявления создаются широкой публикой, они часто размещают рекламу на одном или нескольких сайтах наших партнеров, поэтому создают дублирующиеся рекламные объявления на одном и том же компьютере, и мне нужно идентифицировать объявления, которые дублируются в базе данных.
Проблема с идентификацией рекламы заключается в том, что нет уникального поля (в отличие, скажем, от машины с номером Reg).
У меня была идея добавить дополнительный столбец в таблицу, который содержит MD5-хэш содержимого других столбцов. Когда XML анализируется, хеш MD5 создается для каждого объявления, а затем добавляется в качестве последнего столбца.
Как только записи добавлены (100 тыс. И более) в таблицу, выполняется запрос для определения любых подходящих хешей MD5, но это занимает слишком много времени и часто приводит к превышению времени ожидания запроса (даже если время ожидания увеличено)
Тогда мой вопрос: является ли маршрут хеширования MD5 лучшим? Если это так, как бы я ускорить запрос? Если нет, то как лучше всего определить дубликаты рекламы?
Спасибо