MySQL查询优化器是MySQL服务器的重要组成部分,可为查询设置最佳的问题执行。对于特定查询,查询优化器使用存储的键分布和其他因素来确定执行联接时应联接表的顺序以及特定表应使用哪个索引。
但是,键分布有时可能不准确,例如,在表中进行了许多数据更改(包括插入,删除或更新)之后。如果键分配不正确,问题优化器可能会选择一个讨厌的查询执行安排,这将导致严重的性能问题。
ANALYZE TABLE语句可以解决以上问题。我们需要如下运行ANALYZE TABLE语句-
ANALYZE TABLE table_name
在这里,table_name是表的名称。
我们正在为Student_info表运行此语句,如下所示:
mysql> Analyze table student_info\G; *************************** 1. row *************************** Table: query.student_info Op: analyze Msg_type: status Msg_text: OK 1 row in set (0.22 sec)