mysql 联合索引order_MySQL如何利用索引优化ORDER BY排序语句

本文介绍了MySQL如何利用索引优化ORDER BY排序语句,包括创建索引时支持的ASC或DESC排序,以及不同场景下的索引优化策略。例如,通过创建联合索引可以优化WHERE子句和ORDER BY子句,但某些情况下,如对不同索引键排序或使用表达式时,可能无法利用索引进行优化。
摘要由CSDN通过智能技术生成

官网排序优化:http://dev.mysql.com/doc/refman/5.5/en/order-by-optimization.html

MySql创建索引时支持ASC或DESC排序。

实例展示

创建表时同时创建索引降序排序(sname 字段上普通索引降序)

create tabletbl1 (

idint unique, sname varchar(50),index tbl1_index_sname(sname desc)

);

在已有的表创建索引语法

create [unique|fulltext|spatial] index索引名on 表名(字段名 [长度] [asc|desc]);

MySQL也能利用索引来快速地执行ORDER BY和GROUP BY语句的排序和分组操作。

通过索引优化来实现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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值