ERROR 188 (HY000): FTS 查询超出结果缓存限制 mysql
Posted
技术标签:
【中文标题】ERROR 188 (HY000): FTS 查询超出结果缓存限制 mysql【英文标题】:ERROR 188 (HY000): FTS query exceeds result cache limit mysql 【发布时间】:2018-02-20 16:43:35 【问题描述】:我在表格的文本列上有全文索引,大约有 1100 万行。
表结构:
CREATE TABLE `review` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`comments` text COLLATE utf8mb4_unicode_ci,
`title` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `reviewer_id` (`reviewer_id`),
FULLTEXT KEY `comments` (`comments`)
) ENGINE=InnoDB AUTO_INCREMENT=273001866 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPRESSED;
我尝试搜索:
SELECT
id
FROM
review
WHERE MATCH (comments) AGAINST ('"This is review is only for Campus tours and not for University itself as no one can write a review on University"' IN BOOLEAN MODE)
这会引发以下错误:
ERROR 188 (HY000): FTS query exceeds result cache limit
Google 说这是 mysql 在 5.7 中修复的错误。我正在使用 5.7.19。 任何想法如何解决这个问题。 复制粘贴 ft 变量:
mysql> show global variables like 'innodb_ft%';
+---------------------------------+--------------------+
| Variable_name | Value |
+---------------------------------+--------------------+
| innodb_ft_aux_table | |
| innodb_ft_cache_size | 8000000 |
| innodb_ft_enable_diag_print | OFF |
| innodb_ft_enable_stopword | ON |
| innodb_ft_max_token_size | 84 |
| innodb_ft_min_token_size | 3 |
| innodb_ft_num_word_optimize | 2000 |
| innodb_ft_result_cache_limit | 2000000000 |
| innodb_ft_server_stopword_table | local/my_stopwords |
| innodb_ft_sort_pll_degree | 2 |
| innodb_ft_total_cache_size | 640000000 |
| innodb_ft_user_stopword_table | |
+---------------------------------+--------------------+
12 rows in set (0.00 sec)
【问题讨论】:
【参考方案1】:在向一个巨大的表(1000 万行)中的text
列添加全文索引后,我遇到了这个问题。
以前我通过重新启动服务器解决了这个问题,但现在我无法重新启动它,因为它正在执行一些计算。
通过调整此设置解决了这个问题(比默认设置多 2 倍):
SET GLOBAL innodb_ft_result_cache_limit = 4000000000;
【讨论】:
以上是关于ERROR 188 (HY000): FTS 查询超出结果缓存限制 mysql的主要内容,如果未能解决你的问题,请参考以下文章
mysql 表关联查询报错 ERROR 1267 (HY000)
如何修复“ERROR 130 (HY000):文件格式不正确”
mycat执行查询操作报错“ERROR 1184 (HY000): Invalid DataSource:0“
ERROR 1093 (HY000): 您不能在 FROM 子句中指定要更新的目标表