Здравствуйте.
Подскажите, пожалуйста, существует ли база данных, способная производить быструю выборку по заданной подстроке некоторого текстового поля.
Конкретнее: в настоящий момент создана база данных всех файлов в моей локальной сети. Существует таблица файлов, имеющая поля "имя файла", "размер файла", "дата появления", "номер родительского каталога" и т.д.
Используемая база — MySQL.
Наиболее частая выборка из базы — по части имени файла.
Соответственно запрос выглядит как
SELECT * FROM files WHERE POSITION(substring IN name) != 0
Если не задавать дополнительных ограничений по типу, размеру и пр., то запрос выполняется очень уж долго — до нескольких минут.
В настоящее время сеть увеличилась в несколько раз и от поисковика пришлось отказаться совсем — время запроса уже неудовлетворительное (размер базы — несколько миллионов строк).
Full text index, имеющийся в MySQL, помочь не может, так как индексирует лишь целые слова, слишком короткие или частые игнорирует и т.д.
Также возможно уже существуют программы с требуемой мне функциональностью, если так, сообщите, пожалуйста.
Пока начал писать свою...