mysql 索引倒序_MySQL 8.0 倒序索引的应用

+ ----+-------------+-------+------------+------+---------------+-------+---------+-------+------+----------+----------------------------------+| id| select_type | table| partitions| type| possible_keys | key| key_len | ref| rows| filtered | Extra |+ ----+-------------+-------+------------+------+---------------+-------+---------+-------+------+----------+----------------------------------+| 1| SIMPLE | t12 | NULL| ref| ix_t1 | ix_t1 | 5| const | 1| 20.00| Usingwhere; Backward index scan |+ ----+-------------+-------+------------+------+---------------+-------+---------+-------+------+----------+----------------------------------+

可以看到 用到了 Backward index scan

如果想达到 提问者的要求 ICP 和 Backward index scan 都得用到

猜测下 Extra里的 是不是只能用一种 ?那我把desc 去掉怎样呢 ?

select*from t12where emp_no = 10001andsalary in( 30000, 4000)order by from_date;+----+-------------+-------+------------+------+---------------+-------+---------+-------+------+----------+-----------------------+| id |select_type | table |partitions | type |possible_keys | key |key_len | ref |rows | filtered |Extra |+----+-------------+-------+------------+------+---------------+-------+---------+-------+------+----------+-----------------------+|1| SIMPLE |t12 | NULL |ref | ix_t1 |ix_t1 | 5 |const | 1 |20.00| Using index condition |+----+-------------+-------+------------+------+---------------+-------+---------+-------+------+----------+-----------------------+

结果果然用到了 ICP

那么现在的猜测是Extra里 不能同时用到一个以上的索引方法

既然这样,我们又有什么方法来解决这个问题 ?

这里我用到了 MySQL8.0的倒叙索引

所以我进行如下实验

createindexix_t2 ont12(emp_no,from_date desc,salary);select*fromt12 forceindex(ix_t2)whereemp_no = 10001andsalary in( 30000, 4000)orderbyfrom_date desc;+ ----+-------------+-------+------------+------+---------------+-------+---------+-------+------+----------+-----------------------+| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |+ ----+-------------+-------+------------+------+---------------+-------+---------+-------+------+----------+-----------------------+| 1 | SIMPLE | t12 | NULL | ref | ix_t2 | ix_t2 | 5 | const | 1 | 20.00 | Using index condition |+ ----+-------------+-------+------------+------+---------------+-------+---------+-------+------+----------+-----------------------+

结果发现既用到了ICP 也达到了倒叙的效果

我的新一轮的

深入SQL编程开发与优化

课程即将本周五开课~~

我是知数堂SQL 优化班老师~ ^^

如有关于SQL优化方面疑问和一起交流的请加 并且 @兔子@知数堂SQL优化

欢迎加入 知数堂大家庭。

我的微信公众号:SQL开发与优化(sqlturning)

点击下方小程序加入松华老师《深入SQL编程开发与优化课》返回搜狐,查看更多

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值