SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 14.07.2008 17:54:01

Igor Panshin
Завсегдатай
Зарегистрирован: 04.06.2008
Сообщений: 62

Как скрестить ужа и ежа?

MySql поддерживает полнотекстовый поиск при помощи создания индекса типа FULLTEXT
и только на ENGINE = MyISAM и только CHAR, VARCHAR, TEXT.

InnoDB поддерживает transaction, row-level locking and FK.

Как мне совместить эти два движка в рамках одной таблицы, если я хочу и транзакционность и полнотекстовый поиск?
Если вопрос глупый, то прошу извинить заранее.

Неактивен

 

#2 14.07.2008 19:41:54

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Как скрестить ужа и ежа?

Вопрос не глупый, но правильный ответ, к сожалению, - "никак" sad

Можете попробовать отделить FT-часть таблицы в отдельный фрагмент и делать
объединения с основной таблицей по основному ключу.

Как вариант - можете схитрить и делать "слепки" основной таблицы (ключа и
текстового поля) в MyISAM-табличку по времени. Так Вы получите полнотекстовый
поиск и поддержку транзакций. Правда, Вам необходимо будет иметь какую-то
"умную" часть, т.к. поиск может выдать значения id, не принадлежащие реальной
базе (например, строчка удалилась, а слепок еще не сгенерировался).

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson