mysql在何时放弃索引而使用全表扫描

我们知道一般情况下使用索引扫描效率会优于全表扫描,但是有些情况下mysql仍然会放弃索引而是用全表扫描,那么出现这种情况的原因是什么呢?我认为答案很简单,sql查询优化器认为全表扫描效率比索引扫描高,就会使用全表扫描。那么sql优化器是如何计算扫描效率的呢?哈哈,我也不知道!!!大家可以看一下《数据库索引设计与优化》,了解一下数据库索引结构和优化器的原理。

https://www.jianshu.com/p/0b9117982ee1(转载),文中观点很有意思,"可能因为mysql这个东西太复杂,感觉sql优化都快成玄学了。网上流传了很多“奇技淫巧”,让人真假难辨。我觉得可能是过去mysql优化不是很好时,大家有一些优化的技巧,但随着mysql更新优化,现在已经成为过时甚至错误的做法。但这些说法还在流传,造成了我这样的新手的困惑。",个人也非常认同。

对于sql优化的技巧还是要保持一个思辨的过程,在使用的时候explain一下,多多查阅mysql官方文档吧https://dev.mysql.com/doc/refman/5.6/en/optimize-overview.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值