Мы пытаемся загрузить данные из Excel в базу данных.Перед загрузкой мы хотели бы предварительно просмотреть данные со счетчиком статуса соответствия (например, нет совпадения, аналогичное совпадение, точное совпадение) при сравнении с нашей базой данных.
Приведенный ниже запрос занимает 3 минуты времени для извлечения информации из базы данных на 100 строк.У нас будет случай, когда пользователь может загрузить более 5K строк данных.Пожалуйста, дайте нам знать ваши предложения по повышению производительности нижеуказанного запроса.
select IF(
count(distinct ID) <= 0, (
select case when count(ID) > 0 then 'Similar Match' else 'No Match' end as MatchType from masterTable where (
soundex(BarCode) like soundex('12069B0') or soundex(ProductName) like soundex('FreezerZX')
) and (
levenshtein(BarCode,'12069B0') < 3 or (levenshtein(ProductName,'FreezerZX') < 3)
)
),
'Exact Match'
) as MatchType from masterTable where BarCode= '12069B0' and ProductName= 'FreezerZX';