首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    聊聊Order By

    我们日常工作中写 SQL 语句,经常会使用 order by 对记录进行排序。如果 order by 能够使用索引中记录已经排好序的特性,就不需要再借助内存或磁盘空间进行排序,这无疑是效率最高的。...然而,还是有各种情况导致 order by 不能够使用索引,而是要进行额外的排序操作。MySQL 把需要借助内存或磁盘空间进行的排序操作统称为文件排序,而没有在概念上进一步分为文件排序和内存排序。...order by 子句中,可能会包含一个或多个排序字段,排序字段可以是 int、char、varchar、blob 等各种类型,假设有个字段是这么定义的:a varchar(21845),utf8 字符集下...两类排序 MySQL order by 的实现过程,可能会进行两类排序:内部排序、外部排序。...举例说明 select num from t order by num desc 以 排序模式为例,假设表中有 5 条记录,num 字段值分别为

    77520

    order by的工作原理

    今天分享的内容关于order by的两种排序模式。全字段排序和rowid排序。...看下面这个SQL: mysql> explain select city,name,age from t where city='西安' order by name limit 1000 ; +---...01 全字段排序过程 SQL贴在这里: select city,name,age from t where city='西安' order by name limit 1000 ; 先来看全字段排序过程...其中name是我们order by的目标列,id是主键 2、根据city字段在二级索引上过滤出来记录的主键id值,然后回表聚集索引查询到对应的name和id值,并将name和id这2个字段放入sort_buffer...3、如果order by的字段上本身有索引,则数据记录本身有序,就不会使用sort buffer,之所以使用临时的磁盘文件来排序,是因为数据记录都是无序的。

    72610

    MySQL——优化ORDER BY语句

    MySQL——优化ORDER BY语句 本篇文章我们将了解ORDER BY语句的优化,在此之前,你需要对索引有基本的了解,不了解的老少爷们可以先看一下我之前写过的索引相关文章。现在让我们开始吧。...ORDER BY优化的核心原则 尽量减少额外的排序,通过索引直接返回有序数据。...ORDER BY优化 1.查询的字段,应该只包含此次查询使用的索引字段和主键,其余的非索引字段和索引字段作为查询字段则不会使用索引。...3.升降序不一致,无法利用索引排序 ORDER BY排序字段要么全部正序排序,要么全部倒序排序,否则无法利用索引排序。...BY使用相同的索引,并且ORDER BY的顺序和索引顺序相同,并且ORDER BY的字段都是升序或者降序。

    1.1K21
    领券