2015-07-07 3 views
5

Я знаю, что индексирование в текстовом поле может помочь в поиске с помощью like 'keyword%'.Есть ли какой-либо индекс DB, который может улучшить производительность запросов типа% keyword%?

Но есть ли перекрестная база данных, которая может улучшить полнотекстовый поиск с помощью like '%keyword%'?

И как правило, для текстовых полей с менее чем 1000 символов, когда выполнение запроса like %keyword% становится неприемлемым для веб-запроса? Скажите, когда таблица достигает 10K строк?

+0

Postgres может использовать индекс для 'like '% keyword%'': http://www.depesz.com/2011/02/19/waiting-for-9-1-faster-likeilike/ не уверен, что вы означает, что «индексирование кросс-баз данных». –

+0

Я имею в виду индекс, который может быть создан в стандартном SQL, поддерживаемом всеми dbs. – NeoWang

+2

Большинство СУБД поддерживают встроенный полнотекстовый поиск в качестве быстрой альтернативы 'LIKE', но синтаксис для каждой СУБД отличается. –

ответ

2

Вы можете использовать FULLTEXT INDEX и Seach с помощью специальных команд - на MSSQL можно использовать СОДЕРЖИТ (столбец «* ключевое слово *») или FREETEXT - https://msdn.microsoft.com/en-us/library/ms142583.aspx

Что касается вашего вопроса о производительности, он тесно связан с инфраструктурой, ваши данные или условия поиска.

Смежные вопросы