这是您检查表格类型的方式:
SELECT table_schema,engine FROM information_schema.tables WHERE table_name='tweet';
只有MyISAM 支持FULLTEXT Indexes。
您可能还想抢占停用词列表。
Click Here for the Stop Words that FullText Indexing Would Normally Ignore.
您可以按如下方式覆盖它:
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 表'tweets' 是其他InnoDB 表的父级,外键约束回到'tweets'。
3) 您不能承受“tweets”表的表级锁定。
请记住,如果是MyISAM 表,进入“tweets”表的每个INSERT 都会触发表级锁定。由于它目前是一个InnoDB 表(它执行行级锁定),因此“tweets”表可以非常快地进入INSERTed。
许多人想要创建一个单独的MyISAM 表,称为tweets_tags,具有与“tweets”表相同的主键以及一个名为“tags”的TEXT 列,与“tweets”中的相同表。
接下来,像这样对 tweets_tags 进行初始加载:
INSERT INTO tweets_tags (id,tags) SELECT id,tags FROM tweets;
然后,定期(每晚或每 6 小时)将新推文加载到 tweets_tags 中,如下所示:
INSERT INTO tweets_tags (id,tags) SELECT id,tags FROM tweets WHERE id > (SELECT max(id) FROM tweets_tags);