一般来说都是将所有的数据放到表里再建fulltext的,搜索起来才会快,如果在有fulltext的表再插入数据会变得非常慢,另外fulltext对于在的表能很好地工作,小表没有足够的数据值来进行优化操作。
  你的问题有两种解决方法:一是用drop index indexname on tablename;将fulltext index删除后,再将要插入数据插入表,最后才建fulltext index;
    二是将所有的数据移植到一个没有fulltext index的表中,再建fulltext index.
  

解决方案 »

  1.   

    上面这位兄弟说的还是不行,因为
    1,数据是不断在更新的,现在每天至少一万的数据量,不可能每次都要重建索引
    2,我试过建索引也是特慢的。一个只有4万数据的表,新建fulltext索引,两个小时过去之后,还在执行,我只好把它停掉了,然后再一个一个导入。
      

  2.   

    既然你每天都有4万条记录更新,那你就不要想通过fulltext来提高搜索速度啦。你说一个4万条记录的表建fulltext index花了两个小时还没有结束?我没有那么多的数据,做不了测试,我觉得应该是有什么进程占用了资源,要不然没有任何理由2个小时还建不了一个索引。
      

  3.   

    http://dev.mysql.com/doc/refman/4.1/en/fulltext-search.html
    这里有用户使用fulltext的经验,你去看看吧,肯定对你有益处,里面也提到非英文的fulltext要设置一个“stopword”
    引文如下:
    - If indexing text that is in other language than english, before doing anything create a stopword file for your language! (That could reduce index size about 30%)
      

  4.   

    我不想设置stopword,因为要屏蔽的词语很少