mysql使用索引下推的好处_mysql的索引下推理解和实践

对于mysql建表稍有点经验的开发人员都会为后续的where查询条件提前考虑创建索引。

这里说的是在使用索引查询时有关索引下推的有关知识点。

综合前人的经验结果:索引下推是数据库检索数据过程中为减少回表次数而做的优化。

判断是否需要回表的是由mysql存储引擎控制,默认从mysql5.6版本开始支持。

下面用docker分别创建基于mysql5.5和mysql5.6的容器,表结构保持一致(docker创建mysql容器不做演示)。

首先看mysql5.5:

mysql> select version();+-----------+| version() |+-----------+| 5.5.62 |+-----------+1 row in set (0.00 sec)mysql> show create table testhh\G;*************************** 1. row *************************** Table: testhhCreate Table: CREATE TABLE `testhh` ( `id` int(10) unsigned NOT NULL, `age` int(10) unsigned DEFAULT '0', `name` char(10) NOT NULL DEFAULT '', `height` int(10) NOT NULL DEFAULT '0', `name2` char(10) NOT NULL DEFAULT '', `height2` int(10) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `age_index` (`age`) USING HASH, KEY `un` (`name`,`height`)) ENGINE=InnoDB DEFAULT CHARSET=latin11 row in set (0.00 sec)ERROR:No query specifiedmysql> explain select * from testhh where name like 'a%' and height = 100\G;*************************** 1. row *************************** id: 1 select_type: SIMPLE table: testhh type: rangepossible_keys: un key: un key_len: 14 ref: NULL rows: 1 Ext.........

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值