•   欢迎来到21NN网.
  •   请记住本站网址www.21nn.cn

MySQL索引不见效的解决办法【MySQL教程】,MySQL,办法,解决

摘要: 公司效劳用的mysql,最近在查询时时候很慢,常常会上10多秒,查看了一下查询的实行计划,发明索引没有见效。存储引擎运用InnoDB。一最先在主库查询,一向很猎奇为何索引不见效,切换...
公司效劳用的mysql,最近在查询时时候很慢,常常会上10多秒,查看了一下查询的实行计划,发明索引没有见效。

存储引擎运用InnoDB。

一最先在主库查询,一向很猎奇为何索引不见效,切换到备库以后,发明备库是有用的。

最先斟酌是否是由于索引出问题,后对索引重修,发明效力高了不少。

简朴纪录一下对照。

mysql> explain select * from runinfo where status in (0, 2, 1, 3, 4, 7, 9, 10);
+----+-------------+---------+-------+---------------+------+---------+------+----------+-------------+
| id | select_type | table   | type  | possible_keys | key  | key_len | ref  | rows     | Extra       |
+----+-------------+---------+-------+---------------+------+---------+------+----------+-------------+
|  1 | SIMPLE      | runinfo | All   | status_2      | NULL | NULL    | NULL |  2378055 | Using where |
+----+-------------+---------+-------+---------------+------+---------+------+----------+-------------+
row in set (0.00 sec)

上面是主库的实行计划。

对照一下备库的实行计划。

mysql> explain select * from runinfo where status in (0, 2, 1, 3, 4, 7, 9, 10);
+----+-------------+---------+-------+---------------+----------+---------+------+------+-------------+
| id | select_type | table   | type  | possible_keys | key      | key_len | ref  | rows | Extra       |
+----+-------------+---------+-------+---------------+----------+---------+------+------+-------------+
|  1 | SIMPLE      | runinfo | range | status_2      | status_2 | 4       | NULL |  116 | Using where |
+----+-------------+---------+-------+---------------+----------+---------+------+------+-------------+
row in set (0.00 sec)

能够看出,备库在查询时适应到索引 status_2。

实行以下的敕令以后,问题解决。

mysql> OPTIMIZE TABLE runinfo;
+------------------+----------+----------+-------------------------------------------------------------------+
| Table            | Op       | Msg_type | Msg_text                                                          |
+------------------+----------+----------+-------------------------------------------------------------------+
| schedule.runinfo | optimize | note     | Table does not support optimize, doing recreate + analyze instead |
| schedule.runinfo | optimize | status   | OK                                                                |
+------------------+----------+----------+-------------------------------------------------------------------+
rows in set (47.13 sec)

以上就是MySQL索引不见效的解决办法的细致内容,更多请关注ki4网别的相干文章!

分享到:

发表评论

评论列表

还没有评论,快来说点什么吧~

公众号二维码

微信公众号