现在在vBulletin板上工作,该板在带有InnoDB表引擎的MySQL 5.6.21上运行.vBulletin中有一个默认查询,它在一列上使用索引提示,同时在另外两列上使用全文索引.查询看起来像
SELECT postid, post.dateline FROM post AS post
USE INDEX (threadid)
INNER JOIN thread AS thread ON(thread.threadid = post.threadid)
WHERE MATCH(post.title, post.pagetext) AGAINST ('+atlantic +blue +tang' IN BOOLEAN MODE)
AND thread.threadid = 170467;
Run Code Online (Sandbox Code Playgroud)
这给出了错误
#1191 - 找不到与列列表匹配的FULLTEXT索引
删除USE INDEX解决了问题.
这肯定不会发生在FULLTEXT索引的MyISAM实现上,因为这是vBulletin上的默认查询,并且它在所有板上运行良好.
是否有可能这是InnoDB的一些配置,导致这个问题?我们无法控制查询本身,因此寻找一种方法来解决服务器配置级别的问题.
编辑:包括SHOW CREATE TABLE帖子
CREATE TABLE `post` (
`postid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`threadid` int(10) unsigned NOT NULL DEFAULT '0',
`parentid` int(10) unsigned NOT NULL DEFAULT '0',
`username` varchar(100) NOT NULL DEFAULT '',
`userid` int(10) unsigned …Run Code Online (Sandbox Code Playgroud)