表及相关数据

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 疑问?相关推荐

  1. mysql using filesort_mysql using filesort Using temporary

    using filesort 一般人的回答是: "当行数据太大,导致内存无法容下这些数据产生的临时表时,他们就会被放入磁盘中排序."  很不幸,这个答案是错的 ,临时表在太大的时候 ...

  2. MySQL倒序如何避免filesort_如何避免mysql查询的filesort?

    我用不同的参数使用这种查询: EXPLAIN SELECT SQL_NO_CACHE `ilan_genel`.`id` , `ilan_genel`.`durum` , `ilan_genel`.` ...

  3. MySQL倒序查询最后三条语句_MySQL 中 一条 order by index limit 语句的分析

    在开发过程中,遇到了一条 order by index limit 的语句,执行时间慢,下面记录一下分析过程和原因 问题 SQL select * from t1 where call_type = ...

  4. mysql 倒序 分页_nodeJS与MySQL实现分页数据以及倒序数据

    大家在做项目时肯定会遇到列表类的数据,如果在前台一下子展示,速度肯定很慢,那么我们可以分页展示,比如说100条数据,每10条一页,在需要的时候加载一页,这样速度肯定会变快了. 那么这里我给大家介绍如何 ...

  5. python mysql倒序_day40:MySQL:python操作mysql:pymysql模块SQL注入攻击

    目录 part1:用python连接mysql 1.用python连接mysql的基本语法 创建连接conn→创建游标对象cursor→执行sql语句execute→获取数据fetchone→释放游标 ...

  6. mysql use temporary_一次mysql 优化 (Using temporary ; Using filesort)

    遇到一个SQL执行很慢 SQL 如下: SELECT ... FROM tableA WHERE time >= 1492044535 and time <= 1492046335 GRO ...

  7. mysql 启动 内存_mysql启动内存的疑问

    mysql 启动的时候占用的内存是怎么算的 软件版本 mysql 5.6 网上查看了一下,影响mysql的内存的参数主要大概是 innodb_buffer_pool_size key_buffer_s ...

  8. mysql使用文件排序_Mysql排序FileSort的问题

    需求: 有这样一张表(数据有5KW左右),我需要按照时间过滤出一部分数据,然后将这部分数据分页获取: id 主键 create_date  时间戳  (二级索引) 还有其他几十个字段 问题描述: 我写 ...

  9. mysql倒序获取最新10条后正序展示

    SELECT * FROM (select * from order_list order by start_time desc limit 10) aa ORDER BY start_time 首先 ...

最新文章

  1. Linux ls -l文件列表权限详解
  2. MLPclassifier,MLP 多层感知器的的缩写(Multi-layer Perceptron)
  3. python在当前目录创建txt文件-python-在目录中创建多个文本文件的字数字...
  4. 吴恩达家免费NLP课程上线啦!
  5. C盘不够用了怎么办,看我4年未重做系统如何清理出25G的temp磁盘空间?
  6. go 写文件_如何在 Ubuntu 20.04 上安装 Go
  7. 再论DataSet与DataFrame的区别
  8. mkdir命令的-p和-m
  9. android卡机字符串,Android调用replace方法正则表达式卡死
  10. 云南网络文化经营许可证办理,云南办理网络文化经营许可证多少钱?文网文是什么?怎么办理文网文?办理文网文需要什么材料?
  11. Nagios基本介绍
  12. 小白如何快速绘制原型图
  13. Codeforces Gym 100015F Fighting for Triangles 状压DP
  14. win10系统下,屏幕录制专家如何录制耳机里面的声音
  15. 纸壳CMS列表Grid的配置
  16. OpenCV色域转换
  17. 计算机视觉之图像增广(翻转、随机裁剪、颜色变化[亮度、对比度、饱和度、色调])
  18. 创建一个Android Cardboard 360 Video Viewer
  19. Dubbo源码分析(一):Dubbo源码的结构概述
  20. 《Android开发从零开始》——3.第一个Android程序

热门文章

  1. 10.15 wget:命令行下载工具
  2. 图解ARP协议(二)ARP攻击原理与实践
  3. 如何专业化监控一个Kubernetes集群?
  4. 海口只有阳光沙滩?错,人家还是“最佳智慧城市”
  5. 通过Serverless技术降低微服务应用资源成本
  6. 阿里凑单算法首次公开!打包购商品挖掘系统解析
  7. 相机参数设置程序_自定义拍摄模式怎么设置?教你学会相机设置。
  8. 三招助你轻松搞定超Diao氛围
  9. 揭秘猪八戒调戏嫦娥背后的阴谋
  10. git clone 仓库的部分代码