我的开发/生产MySQL版本和数据几乎相同。我使用带有InnoDB表的MySQL 5.6,具有完全相同的配置,数据,表结构和密钥。
准确地说,MySQL版本略有不同。我的生产版本是5.6.19-0ubuntu0.14.04.1,我的开发版本是5.6.17运行WAMP服务器虽然我没有在MySQL更改日志中发现任何文档或任何暗示这是问题的内容。
以下是一个示例查询:
select title, match(title) against ('+banquet* +runner*' in boolean mode) as match_score from jobs order by match_score desc limit 1
在dev中它返回一行,在生产中它什么都不返回。我可以确认记录存在,因为如果我在生产中运行此查询,我会得到预期的结果:
select title from jobs where title='banquet runner'
一个类似的查询,它确实返回结果但远远少于预期:
select title, match(title) against ('+front +desk +clerk' in boolean mode) as match_score from jobs where having match_score >= 1 order by match_score desc
在开发中我得到95个结果。在制作中我得到49。
如上所述,我已确认数据相同且索引相同。我还通过运行确认所有配置都是相同的:
show variables like '%_ft_%'
有什么想法吗?