首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mysql如何使用order by工作

日常开发中,我们经常要进行字段的排序,但是我们大多不知道排序是如何执行的,今天我们就说说order by 的执行逻辑, CREATE TABLE `t` ( `id` int(11) NOT NULL...KEY `city` (`city`) ) ENGINE=InnoDB 如果我们执行下面语句是如何进行排序的呢 select city,name,age from t where city='杭州' order...我们发现extra这个子弹中的Using filesort 表是要进行排序,Mysql为每一个线程分配一块内存用于排序,这个叫sort_buffer. ?...where variable_name = 'Innodb_rows_read'; /* 执行语句 */ select city, name,age from t where city='杭州' order...by都要进行排序操作,如果不排序就不能获取正确的数据呢,其实,并不是多有的order by 语句,都需要排序,MySQL之所以要使用临时文件排序,是因为原来的数据都是无序的,因此如果本身的从city索引获取的数据就是按照

1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mysql limit工作原理及order by效率分析

    MySQL的limit m n工作原理就是先读取前面m+n条记录,然后抛弃前m条,读后面n条想要的,所以m越大,偏移量越大,性能就越差。...order by和limit 如果你order by和limit一起使用,那么mysql在排序结果中找到最初的row_count行之后就会完成这条语句,而不是对整个结果集进行排序。...Order by和Limit混合使用引起的问题 如果在order by语句中返回的结果集有很多行,那么非排序的列的返回结果是不确定的,即随机的,所以如果配合limit的话每次返回的结果集的顺序是不固定的...,比如下面这个例子 mysql> SELECT * FROM ratings ORDER BY category; +----+----------+--------+ | id | category...by你需要的那几列了: mysql> SELECT * FROM ratings ORDER BY category, id; +----+----------+--------+ | id | category

    7.6K31

    MySQL CASE函数

    说明MySQL CASE函数是MySQL流程控制函数的一种,上面两种语法分别对应两种不同的方式:第一种语法返回第一个value=compare_value为true的结果。...CASE表达式的返回类型是所有结果值的聚合类型:如果所有类型都是数字,则聚合类型也是数字:如果至少一个参数是双精度,则结果是双精度。...示例mysql> SELECT CASE url WHEN 'www.02405.com' THEN '零五网' WHEN 'www.duanpianmi.com' THEN '短篇迷' ELSE '位置网站...' END;mysql> SELECT CASE WHEN score >= 85 THEN '优秀' WHEN score >= 60 and score MySQL中还存在着同名的CASE流程控制语句,与本文讲解的CASE函数不同,CASE流程控制语句应用于存储过程,并且不包含ELSE NULL子句,并且用END CASE而不是END来结束

    3900

    MySQL实战第十六讲-“order by”是怎么工作的?

    那么,如果 MySQL 认为排序的单行长度太大会怎么做呢? 接下来,我来修改一个参数,让 MySQL 采用另外一种算法。...它的意思是,如果单行的长度超过这个值,MySQL 就认为单行太大,要换一个算法。...看到这里,你就了解了,MySQL 做排序是一个成本比较高的操作。那么你会问,是不是所有的 order by 都需要排序操作呢?...如果不排序就能得到正确的结果,那对系统的消耗会小很多,语句的执行时间也会变得更短。 其实,并不是所有的 order by 语句,都需要排序操作的。...小结 今天这篇文章,我和你介绍了 MySQL 里面 order by 语句的几种算法流程。 在开发系统的时候,你总是不可避免地会使用到 order by 语句。

    73130

    MySQL——优化ORDER BY语句

    MySQL——优化ORDER BY语句 本篇文章我们将了解ORDER BY语句的优化,在此之前,你需要对索引有基本的了解,不了解的老少爷们可以先看一下我之前写过的索引相关文章。现在让我们开始吧。...MySQL中的两种排序方式 1.通过有序索引顺序扫描直接返回有序数据 因为索引的结构是B+树,索引中的数据是按照一定顺序进行排列的,所以在排序查询中如果能利用索引,就能避免额外的排序操作。...ORDER BY优化实战 用于实验的customer表的索引情况: 首先要注意: MySQL一次查询只能使用一个索引,如果要对多个字段使用索引,建立复合索引。...BY使用相同的索引,并且ORDER BY的顺序和索引顺序相同,并且ORDER BY的字段都是升序或者降序。...根据两种排序算法的特性,适当加大系统变量maxlengthforsortdata的值,能够让MySQL选择更优化的Filesort排序算法。

    1.1K21
    领券