Вот как вы проверяете тип таблицы:
SELECT table_schema,engine FROM information_schema.tables WHERE table_name='tweet';
Только MyISAM
поддерживает FULLTEXT Indexes
.
Возможно, вы также захотите выгрузить список стоп-слов.
Нажмите здесь для стоп-слов, которые FullText Indexing
обычно игнорировали бы.
Вы можете переопределить это следующим образом:
1) Создать текстовый файл в /var/lib/mysql
вот так
echo "a" > /var/lib/mysql/stopwords.txt<BR>
echo "an" >> /var/lib/mysql/stopwords.txt<BR>
echo "the" >> /var/lib/mysql/stopwords.txt<BR>
2) Добавьте это к /etc/my.cnf
ft_stopword_file=/var/lib/mysql/stopwords.txt<BR>
ft_min_word_len=2
3) перезапуск службы mysql
Вот еще кое-что, что следует учитывать:
Возможно, вы не захотите преобразовывать «твиты» таблицы в MyISAM
.
1) Если в таблице «твиты» InnoDB
содержится CONSTRAINT(s)
.
2) Еслитаблица InnoDB
«твиты» является родителем других таблиц InnoDB
с ограничениями внешнего ключа обратно на «твиты».
3) Вы не можете позволить блокировку таблицы «твиты» на уровне таблиц..
Помните, что каждый INSERT
в таблице 'твитов' будет вызывать блокировку на уровне таблицы, если бы это была таблица MyISAM
.Поскольку в настоящее время это таблица InnoDB
(которая выполняет блокировку на уровне строк), таблица «твитов» может быть очень быстро преобразована в INSERTed
.
Многие хотят создать отдельную таблицу MyISAM
, называемуюtweets_tags
, с тем же Первичным ключом таблицы 'твитов' и столбцом TEXT
, который называется 'тегами', таким же, как в таблице 'твитов'.
Затем выполните начальную загрузку tweets_tagsкак это:
INSERT INTO tweets_tags (id,tags) SELECT id,tags FROM tweets;
Затем периодически (каждую ночь или каждые 6 часов) загружайте новые твиты в твиты: теги вроде этого:
INSERT INTO tweets_tags (id,tags) SELECT id,tags FROM tweets WHERE id > (SELECT max(id) FROM tweets_tags);