Создайте таблицу "псевдоним" и измените тип таблицы - PullRequest
1 голос
/ 04 сентября 2010

У меня есть таблица с именем tb , которая является innodb - имеет более 1 млн строк.

Я хочу выполнить полнотекстовый поиск по таблице, но я не могу этого сделать, потому что это innodb.

Итак, как мне создать «псевдоним» размером tb с именем tb2 , что означает (дубликат таблицы, который автоматически обновляется при данных tb обновляет, но меняет тип таблицы tb2 на myisam) ?

Таким образом, таким образом я могу выполнить полнотекстовый поиск по tb2 , найти идентификаторы и ВЫБЕРИТЕ идентификаторы из tb1

Ответы [ 3 ]

4 голосов
/ 04 сентября 2010

Лично я считаю, что это не очень хорошая идея, потому что это замедлит запись и, учитывая объем данных, ваш полнотекстовый поиск будет медленным. Я искренне рекомендую вам заглянуть в специализированную систему полнотекстового поиска, такую ​​как Sphinx

http://sphinxsearch.com/

0 голосов
/ 04 сентября 2010

Во-первых, вы должны создать таблицу, используя следующий синтаксис:

create table tb2 like tb;

Это создаст таблицу с такой же структурой индекса, как у tb.Затем измените таблицу, чтобы она стала myisam:

alter table tb2 engine='myisam';

Затем скопируйте существующую информацию:

insert into tb2 select * from tb;

Чтобы сохранить информацию, вам потребуется создать тритриггеры на tb ... after insert, after update и after delete.Каждое событие будет вставлять / обновлять / удалять соответствующую строку в tb2.

0 голосов
/ 04 сентября 2010
  • создать таблицу с той же структурой, но механизмом myisam
  • использовать триггеры для INSERT, UPDATE, DELETE, чтобы поддерживать согласованное состояние между двумя таблицами

Ноосторожно, потому что это замедлит операции записи.

...