我有一个包含超过五百万条记录的大型数据库,这个数据库有三个字段(ID,名称,文本),字段ID
有一个主键,字段name
有一个FULLTEXT
索引。索引Mysql字符串
我想为我的网站,在该领域name
寻求,我用FULLTEXT
指数但缺点不接受少于四个字符的关键字搜索引擎,所以我决定将其删除,并把INDEX KEY
在球场上name
并使用以下要求:
EXPLAIN SELECT * FROM table WHERE locate ('search', name) > 0;
的问题是,这个应用程序不使用索引键的字段名称, 但这一要求:
EXPLAIN SELECT name FROM table WHERE locate ('search', name) > 0;
使用INDEX KEY
, 我不知道为什么当我选择所有字段时MYSQL不使用索引。
在你看来,如何解决这个问题,如果可能的话更好的选择。
为什么你不使用MATCH()...对您的全文搜索进行反击? https://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html#function_match – kommradHomer 2012-08-14 08:28:00