MySQL倒序如何避免filesort_MySQL Using filesort 疑问?
表及相关数据
create table book(
bid int auto_increment primary key,
`name` varchar(20) not null,
authorid int not null,
publicid int not null,
typeid int not null
);
insert into book values(1,'tjava',1,1,2);
insert into book values(2,'tc',2,1,2);
insert into book values(3,'wx',3,2,1);
insert into book values(4,'math',4,2,3);
需求
查询 authorid =1 且 typeid为2或3的 bid
优化方案
方法1:
索引的顺序是 bid,typeid,authorid
alter table book add index idx_bta (bid,typeid,authorid);
分析结果
explain select bid from book where typeid in(2,3) and authorid=1 order by typeid desc;
+----+-------------+-------+------------+-------+---------------+---------+---------+------+------+----------+------------------------------------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+-------+------------+-------+---------------+---------+---------+------+------+----------+------------------------------------------+
| 1 | SIMPLE | book | NULL | index | NULL | idx_bta | 12 | NULL | 4 | 25.00 | Using where; Using index; Using filesort |
+----+-------------+-------+------------+-------+---------------+---------+---------+------+------+----------+------------------------------------------+
方法2:
索引的顺序是 typeid,authorid,bid
alter table book add index idx_tab (typeid,authorid,bid);
分析结果
explain select bid from book where typeid in(2,3) and authorid=1 order by typeid desc;
+----+-------------+-------+------------+-------+---------------+---------+---------+------+------+----------+--------------------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+-------+------------+-------+---------------+---------+---------+------+------+----------+--------------------------+
| 1 | SIMPLE | book | NULL | range | idx_tab | idx_tab | 8 | NULL | 2 | 100.00 | Using where; Using index |
+----+-------------+-------+------------+-------+---------------+---------+---------+------+------+----------+--------------------------+
疑问
为啥索引的顺序是 bid,typeid,authorid 的出现 Using filesort, 而 typeid,authorid,bid却没有出现 Using filesort?
MySQL倒序如何避免filesort_MySQL Using filesort 疑问?相关推荐
- mysql using filesort_mysql using filesort Using temporary
using filesort 一般人的回答是: "当行数据太大,导致内存无法容下这些数据产生的临时表时,他们就会被放入磁盘中排序." 很不幸,这个答案是错的 ,临时表在太大的时候 ...
- MySQL倒序如何避免filesort_如何避免mysql查询的filesort?
我用不同的参数使用这种查询: EXPLAIN SELECT SQL_NO_CACHE `ilan_genel`.`id` , `ilan_genel`.`durum` , `ilan_genel`.` ...
- MySQL倒序查询最后三条语句_MySQL 中 一条 order by index limit 语句的分析
在开发过程中,遇到了一条 order by index limit 的语句,执行时间慢,下面记录一下分析过程和原因 问题 SQL select * from t1 where call_type = ...
- mysql 倒序 分页_nodeJS与MySQL实现分页数据以及倒序数据
大家在做项目时肯定会遇到列表类的数据,如果在前台一下子展示,速度肯定很慢,那么我们可以分页展示,比如说100条数据,每10条一页,在需要的时候加载一页,这样速度肯定会变快了. 那么这里我给大家介绍如何 ...
- python mysql倒序_day40:MySQL:python操作mysql:pymysql模块SQL注入攻击
目录 part1:用python连接mysql 1.用python连接mysql的基本语法 创建连接conn→创建游标对象cursor→执行sql语句execute→获取数据fetchone→释放游标 ...
- mysql use temporary_一次mysql 优化 (Using temporary ; Using filesort)
遇到一个SQL执行很慢 SQL 如下: SELECT ... FROM tableA WHERE time >= 1492044535 and time <= 1492046335 GRO ...
- mysql 启动 内存_mysql启动内存的疑问
mysql 启动的时候占用的内存是怎么算的 软件版本 mysql 5.6 网上查看了一下,影响mysql的内存的参数主要大概是 innodb_buffer_pool_size key_buffer_s ...
- mysql使用文件排序_Mysql排序FileSort的问题
需求: 有这样一张表(数据有5KW左右),我需要按照时间过滤出一部分数据,然后将这部分数据分页获取: id 主键 create_date 时间戳 (二级索引) 还有其他几十个字段 问题描述: 我写 ...
- mysql倒序获取最新10条后正序展示
SELECT * FROM (select * from order_list order by start_time desc limit 10) aa ORDER BY start_time 首先 ...
最新文章
- Linux ls -l文件列表权限详解
- MLPclassifier,MLP 多层感知器的的缩写(Multi-layer Perceptron)
- python在当前目录创建txt文件-python-在目录中创建多个文本文件的字数字...
- 吴恩达家免费NLP课程上线啦!
- C盘不够用了怎么办,看我4年未重做系统如何清理出25G的temp磁盘空间?
- go 写文件_如何在 Ubuntu 20.04 上安装 Go
- 再论DataSet与DataFrame的区别
- mkdir命令的-p和-m
- android卡机字符串,Android调用replace方法正则表达式卡死
- 云南网络文化经营许可证办理,云南办理网络文化经营许可证多少钱?文网文是什么?怎么办理文网文?办理文网文需要什么材料?
- Nagios基本介绍
- 小白如何快速绘制原型图
- Codeforces Gym 100015F Fighting for Triangles 状压DP
- win10系统下,屏幕录制专家如何录制耳机里面的声音
- 纸壳CMS列表Grid的配置
- OpenCV色域转换
- 计算机视觉之图像增广(翻转、随机裁剪、颜色变化[亮度、对比度、饱和度、色调])
- 创建一个Android Cardboard 360 Video Viewer
- Dubbo源码分析(一):Dubbo源码的结构概述
- 《Android开发从零开始》——3.第一个Android程序