Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте.
Есть ли в MySql функции обрабатывающие строки с помощью регулярных выражений.
Просто мне необходимо из одной таблицы скопировать некоторые столбцы, а вторая таблица нужна для полнотекстового поиска.
Я не знаю влияют ли на скорость разный регистр слов и разные не нужные символы. Но точно что таблица будет весить меньше и следовательно поиск будет быстрее я уверен, но это скорее всего не большой процент. Может быть такие функции настолько медлительны что лучше ни делать ни каких обработок, а просто скопировать?
Неактивен
Ничего не понял
Регулярные выражения есть — WHERE fieldname RLIKE 'regex',
но запросы с ними не используют индексы, поэтому они будут подходить
только для одноразового копирования данных (ведь Вы это собираетесь
сделать?).
Неактивен
не таблица `tb` удаляется и создаётся заново каждый день следовательно с `tb_index` происходит то же самое (она зависит от `tb`).
`tb_index` это таблица с несколькими полями для более быстрого поиска по `tb`.
Неактивен
Попробую объяснить по другому.
Отредактированно Марк (16.10.2010 09:41:59)
Неактивен
Походу в MySql только можно искать с помощью рег. выражений.
Приходится делать такой запрос, а как обработать строки ХЗ
Неактивен
Какую-то Вы странную вещь делаете. Не проще воспользоваться полнотекстовым индексом?
Неактивен
Простите не пойму причём здесь полнотекстовый индекс?
У меня есть несколько таблиц с кучей столбцов, в общем таблицы реально большие и весят очень много. Следовательно делать много-табличный запрос не имеет смысла. Легче взять необходимые столбцы из разных таблиц объединить в одной таблице в одном столбце предварительно обработав(т.е удалить короткие слова, запятые, кавычки и т.д) и добавить полнотекстовый индекс.
т.е у меня есть таблицы
tb
-----------------------------------------------------------------
id author name
1 Максим Кузнецов Самоучитель MySQL 5 (+ CD-ROM)
как видите не очень приятный вид для поиска и похожих таблиц не мало. Поэтому лучше привести все эти данные к такому виду.
tb_index
-----------------------------------------------------------------
id text
1 максим кузнецов самоучитель mysql 5 cd rom
и так со всеми данными из всех таблиц. Т.е делаем поисковый индекс.
По моему хорошее решение.
Проблема только в том как эти данные форматировать на уровне базы данных.
Неактивен
Тогда так, как я сказал. Но у меня ощущение, что Вы пытаетесь оптимизировать
совершенно не узкое место приложения.
Неактивен
Вы пытаетесь оптимизировать совершенно не узкое место приложения.
Ну если вы про форматирование строк на уровне базы данных то это да. Конечно хочется удалить все лишние символы. Но и так не смертельно.
Неактивен
Нет, я про создание отдельной таблички для индекса вместо использования
индекса над изначальными табличками.
Неактивен