Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql全文查询非常慢_Mysql_Full Text Search_Query Optimization_Full Text Indexing - Fatal编程技术网

mysql全文查询非常慢

mysql全文查询非常慢,mysql,full-text-search,query-optimization,full-text-indexing,Mysql,Full Text Search,Query Optimization,Full Text Indexing,我在MySql中有一个用户详细信息表,其中包含大约500000条记录。我还在这个表的firstname和lastname字段上创建了全文索引。但当我试图搜索任何单个字母表(如a到z,单个字符)时,它在第一时间的响应非常慢。响应大约需要5-6秒。在那之后,它下降到800毫秒。EXPLAIN命令在type列中显示“全文”,看起来还可以,但我找不到它反应非常慢的原因 我的查询如下所示 SELECT SQL_NO_CACHE usr.id, usr.uname, ifnull(usr.fullname

我在MySql中有一个用户详细信息表,其中包含大约500000条记录。我还在这个表的firstname和lastname字段上创建了全文索引。但当我试图搜索任何单个字母表(如a到z,单个字符)时,它在第一时间的响应非常慢。响应大约需要5-6秒。在那之后,它下降到800毫秒。EXPLAIN命令在type列中显示“全文”,看起来还可以,但我找不到它反应非常慢的原因

我的查询如下所示

SELECT  SQL_NO_CACHE usr.id, usr.uname, ifnull(usr.fullname,'') fullname,
        ifnull(ct.City, '') city,
        MATCH(usr.fname,usr.lname) AGAINST('a*' IN BOOLEAN MODE) ordfld 
FROM usertable usr
LEFT JOIN citymas ct ON ct.CityID = upm.CityID
WHERE usr.UserStatus IN(10,11)
AND usr.id <> 1
AND MATCH(usr.fname,usr.lname) AGAINST('a*' IN BOOLEAN MODE) > 0  
ORDER BY ( CASE WHEN usr.fullname = 'a' THEN 1
                WHEN usr.fname rlike 'a%' THEN 2 
                WHEN usr.lname LIKE 'a%' THEN 3 
                WHEN usr.fname like '%a' THEN 6 
                WHEN usr.lname LIKE '%a' THEN 7 
                WHEN usr.fullname LIKE '%a%' THEN 8
                ELSE 10 END ),
 ordfld DESC,
( CASE WHEN ifnull(usr.cityid,0) = 234 THEN '0' ELSE '1' END ), usr.fullname 
LIMIT 20
上述查询花费的时间太长,响应时间在800-900毫秒之间

猜猜看

编辑:


ft_min_word_len重要吗?当我在本地主机中更改它并再次重建索引时,相同的查询将在500毫秒内返回。如果我想在Amazon RDS上更改此选项,我该怎么做?

你好,Manish。你找到解决办法了吗?我在我的wpf应用程序中面临同样的问题。
1, 'SIMPLE', 'usr', 'fulltext', 'PRIMARY,IX_usertable_fname_lname', 'IX_usertable_fname_lname', 0, NULL        , 1, 'Using where; Using filesort'
1, 'SIMPLE', 'ct' , 'eq_ref'  , 'PRIMARY'                         , 'PRIMARY'        ,          3, 'usr.cityid', 1, NULL