MySQL中使用SQL提示优化(优化3)

SQL提示就是人为的提示数据库以此达到优化的效果,例如:SELECT SQL_BUFFER_RESUTS *FROM tableName...
这是强制MySQL生成一个临时结果集,只要临时结果集生成后,所有表的lock都被释放。如果查询后需要传输大量数据到客户端,可以借用这种方式,快速的释放表锁。
1.在表查询时,添加use index 提示希望MySQL去参考的索引,但不是一定使用该索引。在这里插入图片描述
上图可以看出来虽然我们用了use index(idx_fk_staff_id) 但查询时还是没有使用index。
在有些情况,我们需要屏蔽其他的index,可以使用ignore index让其屏蔽某个index,例如:

explain select last_name  from actor \G  # 这是没有使用ignore index时,可以看到查询时使用了idx_actor_last_name

在这里插入图片描述

explain select last_name  from actor ignore index(idx_actor_last_name) \G   #这是使用了ignore index,是查询时屏蔽掉idx_actor_last_name

在这里插入图片描述
3.我们使用force index强制MySQL使用指定index,例如:

explain select actor_id from actor  \G  #未使用force index,MySQL默认使用idx_actor_last_name

在这里插入图片描述
使用force index强制MySQL使用某个缩影:

explain select actor_id from actor force index(primary) \G

在这里插入图片描述
可以看到这就强制使用primary key作为index对表进行查询。我们在实际工作中结合自身需求,选择合理的index进行对表的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值