加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL索引和SQL调优手册

发布时间:2019-09-25 20:22:56 所属栏目:MySql教程 来源:吴德宝AllenWu
导读:MySQL索引 MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引。 MySQL官方对索引

通过执行计划explain分析如下查询语句

  1. mysql> explain select msg_id from circlemessage_idx_0 where  to_id = 113487 and circle_id=10019063  and msg_id>=6273803462253938690  and from_id != 113487 order by msg_id asc limit 30; 
  2. +----+-------------+---------------------+-------+-------------------------+---------+---------+------+--------+-------------+ 
  3. | id | select_type | table               | type  | possible_keys           | key     | key_len | ref  | rows   | Extra       | 
  4. +----+-------------+---------------------+-------+-------------------------+---------+---------+------+--------+-------------+ 
  5. |  1 | SIMPLE      | circlemessage_idx_0 | range | PRIMARY,idx_from_circle | PRIMARY | 16      | NULL | 349780 | Using where | 
  6. +----+-------------+---------------------+-------+-------------------------+---------+---------+------+--------+-------------+ 
  7. 1 row in set (0.00 sec) 
  1. mysql> explain select msg_id from circlemessage_idx_0 where  to_id = 113487 and circle_id=10019063   and from_id != 113487 order by msg_id asc limit 30; 
  2. +----+-------------+---------------------+-------+-----------------+---------+---------+------+------+-------------+ 
  3. | id | select_type | table               | type  | possible_keys   | key     | key_len | ref  | rows | Extra       | 
  4. +----+-------------+---------------------+-------+-----------------+---------+---------+------+------+-------------+ 
  5. |  1 | SIMPLE      | circlemessage_idx_0 | index | idx_from_circle | PRIMARY | 16      | NULL |   30 | Using where | 
  6. +----+-------------+---------------------+-------+-----------------+---------+---------+------+------+-------------+ 
  7. 1 row in set (0.00 sec) 

问题分析

通过上面两个执行计划可以发现当没有msg_id >= xxx这个查询条件的时候,检索的rows要少很多,并且两者查询的时候都用到了索引,而且用到的还只是主键索引。那说明索引应该是不合理的,没有发挥最大作用。

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读