




попробуйте вместо этого использовать метафон
В зависимости от того, против чего вы используете SOUNDEX, может быть дешевле запустить SOUNDEX () на уровне базы данных:
$result = $db->query("
SELECT
company.id,
company.name,
SOUNDEX(company.name) AS soundex
FROM
company
WHERE
company.name SOUNDS LIKE '$companyName'
");
На мой взгляд, преимущества этого (предельное увеличение производительности) не перевешивают боль / затраты (поддержание синхронизации столбца). Я создал таблицу с 5000 уникальными именами, индексированный столбец имен и запустил SOUNDEX для всех. Результаты: в среднем 1,8 мс против 1,5 мс при простом извлечении данных без SOUNDEX.
я должен создать в самой базе данных mysql, что индекс soundex опережает время?