MySQL 索引失效的一个示例

本文分析了针对特定SQL查询,使用不同索引(osx_introducer_relation_ir_uid_IDX, ir_create_at_IDX, ir_uid_IDX, ir_uid_IDX w/o ir_create_at)所带来的查询优化效果。重点讲解了索引选择对查询性能的影响及适用场景。
摘要由CSDN通过智能技术生成

查询语句:

explain format=json
select
	count(*) as total_count
from
	osx_introducer_relation as o_i_r
where
	ir_create_at >= '1637915380'
	and ir_create_at<'1637915399'
	and ir_uid = '1229'
	and ir_del_at = 0 ;

情形一:

索引  KEY `osx_introducer_relation_ir_uid_IDX` (`ir_uid`,`ir_create_at`) USING BTREE

输出结果

{
  "query_block": {
    "select_id": 1,
    "table": {
      "table_name": "o_i_r",
      "access_type": "range",
      "possible_keys": [
        "osx_introducer_relation_ir_uid_IDX"
      ],
      "key": "osx_introducer_relation_ir_uid_IDX",
      "used_key_parts": [
        "ir_uid",
        "ir_create_at"
      ],
      "key_length": "51",
      "rows": 1,
      "filtered": 100,
      "index_condition": "((`osx1`.`o_i_r`.`ir_create_at` >= 1637915380) and (`osx1`.`o_i_r`.`ir_create_at` < 1637915399) and (`osx1`.`o_i_r`.`ir_uid` = '1229'))",
      "attached_condition": "(`osx1`.`o_i_r`.`ir_del_at` = 0)"
    }
  }
}

情形二:

索引  KEY `osx_introducer_relation_ir_create_at_IDX` (`ir_create_at`,`ir_uid`) USING BTREE

输出结果

{
  "query_block": {
    "select_id": 1,
    "table": {
      "table_name": "o_i_r",
      "access_type": "range",
      "possible_keys": [
        "osx_introducer_relation_ir_create_at_IDX"
      ],
      "key": "osx_introducer_relation_ir_create_at_IDX",
      "used_key_parts": [
        "ir_create_at"
      ],
      "key_length": "51",
      "rows": 1,
      "filtered": 100,
      "index_condition": "((`osx1`.`o_i_r`.`ir_create_at` >= 1637915380) and (`osx1`.`o_i_r`.`ir_create_at` < 1637915399) and (`osx1`.`o_i_r`.`ir_uid` = '1229'))",
      "attached_condition": "(`osx1`.`o_i_r`.`ir_del_at` = 0)"
    }
  }
}

情形三:

索引  KEY `osx_introducer_relation_ir_uid_IDX` (`ir_uid`,`ir_create_at`,`ir_del_at`) USING BTREE

输出结果

{
  "query_block": {
    "select_id": 1,
    "table": {
      "table_name": "o_i_r",
      "access_type": "range",
      "possible_keys": [
        "osx_introducer_relation_ir_uid_IDX"
      ],
      "key": "osx_introducer_relation_ir_uid_IDX",
      "used_key_parts": [
        "ir_uid",
        "ir_create_at"
      ],
      "key_length": "59",
      "rows": 1,
      "filtered": 100,
      "using_index": true,
      "attached_condition": "((`osx1`.`o_i_r`.`ir_del_at` = 0) and (`osx1`.`o_i_r`.`ir_create_at` >= 1637915380) and (`osx1`.`o_i_r`.`ir_create_at` < 1637915399) and (`osx1`.`o_i_r`.`ir_uid` = '1229'))"
    }
  }
}

情形四:

索引   KEY `osx_introducer_relation_ir_uid_IDX` (`ir_uid`) USING BTREE

输出结果

{
  "query_block": {
    "select_id": 1,
    "table": {
      "table_name": "o_i_r",
      "access_type": "ref",
      "possible_keys": [
        "osx_introducer_relation_ir_uid_IDX"
      ],
      "key": "osx_introducer_relation_ir_uid_IDX",
      "used_key_parts": [
        "ir_uid"
      ],
      "key_length": "43",
      "ref": [
        "const"
      ],
      "rows": 3,
      "filtered": 100,
      "index_condition": "(`osx1`.`o_i_r`.`ir_uid` = '1229')",
      "attached_condition": "((`osx1`.`o_i_r`.`ir_del_at` = 0) and (`osx1`.`o_i_r`.`ir_create_at` >= 1637915380) and (`osx1`.`o_i_r`.`ir_create_at` < 1637915399))"
    }
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值