Error number: MY-012563; Symbol: ER_IB_MSG_738; SQLSTATE: HY000
Message: Waiting for recv_writer to finish flushing of buffer pool
错误说明
ER_IB_MSG_738是MySQL Server中常见的错误代码,表示发生了InnoDB存储引擎相关的错误。在MYSQL的5.5及以后的5.5版本中,此错误的全称为ER_INNODB_FT_EXCEEDED_LIMIT,表示全文索引(Full Text)的限制已经超过。
常见案例
全文索引是用于处理文本搜索和匹配的索引技术。它可以高效地通过搜索匹配查询(like匹配)的文本搜索关键字,从而提高数据检索的效率。全文索引在MySQL 5.6之前的InnoDB存储引擎是有限制的,一个InnoDB表只能有最多64个全文索引,因此,此ER_IB_MSG_738错误提示,InnoDB存储引擎全文索引的限制超过了,可能是由于添加了太多的全文索引引起的。
解决方法
如果用户尝试创建全文索引,但遇到ER_IB_MSG_738错误,则可以根据以下建议尝试修复此错误:
1. 修改存储引擎:如果你的MySQL版本是5.6或更高,那么可以尝试使用MySQL的新的存储引擎,即引擎,可以在MySQL 5.6中升级全文索引数量上限;
2. 删除多余的索引:如果你使用原先的InnoDB存储引擎,那么可以尝试删除多余的全文索引,以减少存储引擎的限制;
3. 修改全文索引长度:如果你正在使用MySQL 5.6及更高版本,而且你的全文索引存在太长的字符串,那么你可以尝试修改全文索引的长度。