Order by语句是用来排序的,经常我们会使用到Order by来进行排序,下面我给大家来讲讲Order by用法与优化排序,有需要的同学可参考

MySQL Order By keyword是用来给记录中的数据进行分类的。

MySQL Order By Keyword根据关键词分类

ORDER BY keyword是用来给记录中的数据进行分类的。SELECT column_name(s)

FROM table_name

ORDER BY column_name

例子

SQL创建代码:CREATE TABLE IF NOT EXISTS mysql_order_by_test (

uid int(10) NOT NULL AUTO_INCREMENT,

name char(80) NOT NULL,

sex tinyint(1) NOT NULL,

KEY uid (uid)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

INSERT INTO mysql_order_by_test (uid, name, sex) VALUES(1, 'www.jb51.net', 1);

INSERT INTO mysql_order_by_test (uid, name, sex) VALUES(2, '李四', 2);

INSERT INTO mysql_order_by_test (uid, name, sex) VALUES(3, '王二麻子', 1);

通过索引优化来实现MySQL的ORDER BY语句优化:

1、ORDER BY的索引优化。如果一个SQL语句形如:SELECT [column1],[column2],…. FROM [TABLE] ORDER BY [sort];

在[sort]这个栏位上建立索引就可以实现利用索引进行order by 优化。

2、WHERE + ORDER BY的索引优化,形如:SELECT [column1],[column2],…. FROM [TABLE] WHERE [columnX] = [value] ORDER BY [sort];

建立一个联合索引(columnX,sort)来实现order by 优化。

注意:如果columnX对应多个值,如下面语句就无法利用索引来实现order by的优化SELECT [column1],[column2],…. FROM [TABLE] WHERE [columnX] IN ([value1],[value2],…) ORDER BY[sort];

3、WHERE+ 多个字段ORDER BYSELECT * FROM [table] WHERE uid=1 ORDER x,y LIMIT 0,10;

建立索引(uid,x,y)实现order by的优化,比建立(x,y,uid)索引效果要好得多

在某些情况中,MySQL可以使用一个索引来满足ORDER BY子句,而不需要额外的排序。where条件和order by使用相同的索引,并且order by的顺序和索引顺序相同,并且order by的字段都是升序或者都是降序。

例如:下列sql可以使用索引。SELECT * FROM t1 ORDER BY key_part1,key_part2,... ;

SELECT * FROM t1 WHERE key_part1=1 ORDER BY key_part1 DESC, key_part2 DESC;

SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 DESC;

但是以下情况不使用索引:①SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC;

--order by的字段混合ASC和DESC

②SELECT * FROM t1 WHERE key2=constant ORDER BY key1;

--用于查询

行的关键字与ORDER BY中所使用的不相同

③SELECT * FROM t1 ORDER BY key1, key2;

--对不同的关键字使用ORDER BY:

mysql 优化代码_MySQL Order by 语句优化代码详解相关推荐

  1. mysql order by 语句_Mysql优化order by语句的方法详解

    本篇文章我们将了解ORDER BY语句的优化,在此之前,你需要对索引有基本的了解,不了解的老少爷们可以先看一下我之前写过的索引相关文章.现在让我们开始吧. MySQL中的两种排序方式 1.通过有序索引 ...

  2. mysql sql优化入门_Mysql入门SQL 语句优化方法30例

    作者:VEPHP   时间 2017-09-27 <Mysql入门SQL 语句优化方法30例>要点: 本文介绍了Mysql入门SQL 语句优化方法30例,希望对您有用.如果有疑问,可以联系 ...

  3. 免安装mysql配置图解_mysql免安装版配置步骤详解分享

    1.准备工作 下载mysql的最新免安装版本mysql-noinstall-5.1.53-win32.zip,解压缩到相关目录,如:d:\\ mysql-noinstall-5.1.53-win32. ...

  4. mysql master 配置_MySQL双Master配置的方法详解

    刚刚抽空做了一下MYSQL 的主主同步.把步骤写下来,至于会出现的什么问题,以后随时更新.这里我同步的数据库是TEST1.环境描述.主机:192.168.0.231(A)主机:192.168.0.23 ...

  5. 给mysql 授权 命令_mysql中授权命令grant用法详解:

    mysql中授权命令grant用法详解: mysql中可以给你一个用户授予如select,insert,update,delete等其中的一个或者多个权限,主要使用grant命令,用法格式为: gra ...

  6. mysql escape关键字_MySQL中ESCAPE关键字的用法详解

    MySQL转义 转义即表示转义字符原来的语义,一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现时的语义. MySQL中,转义字符以"\" ...

  7. mysql命令去重_mysql去重的两种方法详解及实例代码

    mysql去重 方法一: 在使用MySQL时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数, ...

  8. mysql binlog 回退_MYSQL Binglog分析利器:binlog2sql使用详解

    大部分使用mysql的业务也都会开启binlog,用以记录数据库的更新操作.当然binlog的格式大家也都比较清楚,分别是statement.mixed.row模式.针对row格式的binlog,它以 ...

  9. mysql 事件统计_mysql事件统计之PERFORMANCE_SCHEMA基础详解

    概述 MySQL 5.5开始新增一个数据库:PERFORMANCE_SCHEMA,主要用于收集数据库服务器性能参数.并且库里表的存储引擎均为PERFORMANCE_SCHEMA,而用户是不能创建存储引 ...

最新文章

  1. 使用Maven打包你的应用——maven-jar-plugin maven-assembly-plugin maven-shade-plugin
  2. 服务器中同一个【ip:port】可以多次accept的问题
  3. Rest 微服务工程搭建01——微服务提供者Module模块
  4. 14、查看和修改默认存储引擎
  5. OpenCV条形码识别
  6. ES5(三)——数组新增函数every()、some()、map()、foreach()、filter()和reduce()汇总
  7. AppFabric客户端的一些配置(Microsoft.Web.DistributedCache)
  8. python基础语法、数据结构、字符编码、文件处理 练习题
  9. 【优化算法】多目标萤火虫算法(MOFA)【含Matlab源码 1595期】
  10. Activiti7 25张表含义
  11. java pgp 加密_加密软件PGP的使用
  12. 网狐6603服务器文档,【整理发布】网狐 6603 棋牌平台搭建图文详解(二)
  13. echarts 折线图 中有两条线 ,在鼠标悬停时显示数据
  14. 百度统计后台页面点击图提示无法建立连接
  15. 机试评判系统评判提交程序后返回结果详细说明
  16. 《可复制的领导力》读书笔记
  17. “魅力河南 智慧富民——互联网+旅游扶贫项目”签约仪式在郑州举行
  18. 哪个录音软件最好用?推荐几款录音软件给你
  19. python手机自动回复_用python itchat写一个微信机器人自动回复
  20. R语言入门基础——基础操作篇(极为基础的指令代码)

热门文章

  1. 前端_网页编程 WebAPI_01
  2. 使用ant design vue 中table组件运行时not found: Error: Can't resolve 'reqwest' in 'D:\vue\antd-demo01\src\com
  3. startlogging中设置setstdout=false来禁用这个功能。_Windows 10禁用USB选择性暂停设置,峰哥教你解决USB设备失灵问题...
  4. C语言 static - C语言零基础入门教程
  5. linux下安装配置apache+php,linux下安装apache与php;Apache+PHP+MySQL配置攻略
  6. android触摸效果,Android UI实现单行文本水平触摸滑动效果
  7. strlen函数strcpy函数strcat函数的实现
  8. java 旋转图片_Java实现图片翻转以及任意角度旋转
  9. mysql 哈希缓存_MySQL数据库性能优化思路总结
  10. php div边框,CSS自定义边框