关于mysql优化的问题

查看:84
本文介绍了关于mysql优化的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

修改问题: 下面出现的问题貌似是我本地环境的问题, 换了个环境就可以了, 现在我想问问我的环境为什么会出现下面的情况 :(

最近学习数据库优化, 遇到不少不解的地方:

  1. 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆