首页 > 解决方案 > MySQL - N-Gram 解析器导致 CPU 使用率高

问题描述

我们有一个网站,它的数据库在 AWS RDS 上运行。
对于站点搜索功能,innodb 表上只有一个 FULLTEXT 索引。

我们的大部分数据都包含 CJK 字符,由于默认解析器的行为不适合 CJK 字符,即使我们设置innodb_ft_min_token_size为 1,我们想更改为使用 N-Gram 解析器。

使用 N-Gram 解析器,FULLTEXT 搜索结果比以前更好。但是CPU使用率一直处于高位(70%以上),很容易导致RDS服务器无响应。这是示例图像之一。 在此处输入图像描述 此外,有时它会一直停留在 99% 的使用率,并很快导致 RDS 服务器停机。

我曾经show processlist检查过正在运行的线程,但是我们网站的流量很少。只有几个查询,也不复杂。

如果我们在没有 N-Gram 解析器的情况下构建 FULLTEXT 索引,CPU 利用率稳定在 5% 到 20% 的范围内。一切都会好起来的,只是搜索结果不尽如人意。
这个问题有什么解决方案吗?

标签: mysqlamazon-rdsfulltext-index

解决方案


推荐阅读