parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

mysql: оптимизация поиска

Дэн 25.12.2007 19:44

Есть 3 таблицы: obj, obj_alias, obj_keywords.
Таблицы связаны по индексу obj_id.

Соответственно, в таблицах obj_alias и obj_keywords (varchar поля) хранятся ключевые слова и псевдонимы, связанные с объектом в таблице obj, в которой также хранится имя объекта. Таблицы нужны именно в таком виде, а не одно со всеми этими полями, так как могут быть различные варианты выборки.

Вопрос: как лучше написать запрос при очень большом кол-ве записей в таблицах для поиска объектов без учета регистра (utf-8).
Варианты есть такие варианты: regexp, like или = для этих запросов.

Или лучше сделать еще одну таблицу с текстовым полем, объединяющем все три таблицы для оптимизации поиска, obj_index со значениями через запятую в одном регистре и искать таким запросом:
regexp '(^^|,)${what}(^$|,)'
.