Релевантность выборки по облаку тэгов

Maler

Новичок
Релевантность выборки по облаку тэгов

Есть таблица, одно из полей содержит тэги в виде "string, string, ..."
id|tags
1|тест, тестовый
2|тестируем
3|протестировали

Если делать выборку `tags` LIKE '%тест%', то будут выбраны все строки, а нужно только с id=1.

Вопрос: как сделать?
Нужен способ, который будет по минимуму нагружать базу.
Если полнотекстовый поиск, то не будет ли виснуть база при большом количестве запросов? Есть альтернатива?

Спасибо за помощь.
 

Dovg

Продвинутый новичок
в mysql есть регулярные выражения
По скорости - надо сравнивать
 

Alexandre

PHPПенсионер
сли делать выборку `tags` LIKE '%тест%', т
далай ` LIKE 'тест,%' c запятой (или пробелом), запятую надо будет ставить после каждого слова в твоей тбл...

ЗЫ - я бы с лайком не делалбы....
 

Maler

Новичок
Alexandre
да вот и я думаю, что лайк не есть хорошо, но какие варианты?

Думаю предложенный вариант с регулярками вообще отпадает, хотя тесты не проводил, но почти уверен, что это будет еще медленнее.
 

Bitterman

Новичок
я храню теги в отдельной таблице, еще в одной - связи между тегом и сущностью.
 

Maler

Новичок
Bitterman да, именно так я и делал, но не хочется делать лишние запросы к базе.
А как по вашему, что будет быстрее LIKE или +2 запроса к базе?

В принципе, вариант с LIKE 'тест,%' подходит, но стоит его использовать?
 

Balloon

Новичок
Просто LIKE 'тест,%' мало.. нужно что то вроде
LIKE 'тест,%' OR LIKE '%,тест' OR LIKE '%,тест,%'
 

Alexandre

PHPПенсионер
Думаю предложенный вариант с регулярками вообще отпадает, хотя тесты не проводил, но почти уверен, что это будет еще медленнее
да вот и я думаю, что лайк не есть хорошо, но какие варианты?
1) есть регулярки на UDF, работает относительно шустро...
2) если бы такая задача стояла, я бы критически отнесся к самой структуре БД
в крайнем случае написал бы UDF. Опыт показывает, что UDF на тексте работает от 5 до 35 раз шустрее (очень зависит от длинны поля ), нежеле что-то наварачивать со встроенными функциями.
 

Maler

Новичок
Balloon
спасибо..

Alexandre
UDF почитаю, спасибо.. честно говоря не в курсе о чем идет речь
 
Сверху