使用FULLTEXT索引列时UPDATE缓慢

时间:2017-02-14 11:30:34

标签: mysql sql amazon-rds-aurora

我正在对notifications表运行简单的更新查询:

UPDATE `notifications`
SET is_unread = 0
WHERE MATCH(`grouping_string`) AGAINST("f89dc707afa38520224d887f897478a9")

grouping_string列有一个FULLTEXT索引,notifications表有2M +行。

现在,上面的UPDATE需要70秒才能执行。但是,如果我使用相同的WHERE运行SELECT,则结果是立即的。

可能导致此问题的原因以及如何优化UPDATE?

环境: Amazon Aurora引擎上的MySQL 5.6(InnoDB)

更新:在查询中使用EXPLAIN表示全文索引是可能使用的索引之一,但在执行过程中未使用它。相反,只使用PRIMARY(id)。受影响的行等于表中的行数(2M +)。

更新2 SHOW VARIABLES LIKE 'query%'的结果:

+------------------------------+-----------+
|        Variable_name         |   Value   |
+------------------------------+-----------+
| query_alloc_block_size       | 8192      |
| query_cache_limit            | 1048576   |
| query_cache_min_res_unit     | 4096      |
| query_cache_size             | 444890112 |
| query_cache_type             | ON        |
| query_cache_wlock_invalidate | OFF       |
| query_prealloc_size          | 8192      |
+------------------------------+-----------+

0 个答案:

没有答案