关于mysql优化的问题
本文介绍了关于mysql优化的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
修改问题: 下面出现的问题貌似是我本地环境的问题, 换了个环境就可以了, 现在我想问问我的环境为什么会出现下面的情况 :(
最近学习数据库优化, 遇到不少不解的地方:
mysql查询数据时filesort什么情况下出现,
我创建如下表,
create table test (
id int auto_increment primary key,
name varchar(20),
age tinyint
)
添加测试数据
insert into test (name, age) values
('zhang', 8),
('wang', 18),
('li', 2),
('zhang', 12),
('zhao', 23),
('zhang', 7),
('li', 12),
('wang', 4)
然后执行
explain select * from test order by id
这里的using filesort为什么会出现, 我看资料上有说当排序的字段不能使用索引时就会使用filesort, 但id不该是索引吗
https://www.percona.com/blog/...
解决方案
不用太在意这个问题
1.背景知识:
mysql在执行sql语句的时候,会对你的语句进行优化,优化的时候会去读取很多信息,包括表信息以及宿主机器信息,综合考虑后,它发现你这条语句即使可以使用索引,但是实际上不使用索引更快的时候,就会自动不使用索引进行查询。
2.你的执行计划:
type里是all说明他走了全表,即没有走索引,然后order by需要配需,所以就在内存里自己进行了一次排序,extra为file sort
这篇关于关于mysql优化的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文