文章详情页
mysql优化 - 关于mysql查询时索引失效及扫描行数大于数据总行数的疑问。
浏览:221日期:2022-06-10 17:35:38
问题描述

对比前两条语句,第二条没有使用索引,我记得是扫描行数达到一定行数时会放弃使用索引,这个临界值是多少呢?
全表扫描是显示扫描行数是 70341 行,而数据总行数却只有 57087 行?
select count(*) 使用了索引,但是也扫描了 70341 行,这个语句会产生性能问题吗?
问题解答
回答1:CBO优化机制的数据库中,没有明确的使用或不适用索引的临界值,以执行计划中的COST最小为标准,经验值是取表总行数小于5%的时候用索引比较合适。
我理解第二个语句使用的是表的统计数据,如果表最近发生过比较大的变更,统计数据有没有及时更新,会出现两者偏差较大的情况。
count(*)使用了索引,说明update_at字段有NOT NULL的定义,相比较全表扫描,扫描索引的成本会更低一些。
相关文章:
1. sublime-text - sublime text 3中编译python(sublimeREPL),如何仅运行单行/选定部分2. android-studio - android app微信登录一定要申请了登录权限才能测试?3. javascript - chart.js如何修改某个指定bar的颜色4. python3.x - python多进程,不能在同一窗口吗5. 使用weex扩展html5的项目存在ios不同版本的兼容性6. mysql按照时间热度排序7. javascript - html5多个label中其中一个触发change,如何判断是哪一个出发了change8. 网页爬虫 - python爬虫用BeautifulSoup爬取<s>元素并写入字典,但某些div下没有这一元素,导致自动写入下一条,如何解决?9. mysql - phpMyAdmin无法导入数据10. 导入数据库不成功
排行榜

网公网安备