问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

MYSQL如何降序排列?或如何加快降序查询的速度

发布网友 发布时间:2022-04-21 03:15

我来回答

1个回答

热心网友 时间:2022-04-08 09:36

MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执行联结操作时匹配其它表的数据行的搜索速度。

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] WHERE [columnX] IN ([value1],[value2],…) ORDER BY[sort];

3、WHERE+ 多个字段ORDER BY
SELECT * FROM [table] WHERE uid=1 ORDER x,y LIMIT 0,10;
建立索引(uid,x,y)实现order by的优化,比建立(x,y,uid)索引效果要好得多。

MySQL Order By不能使用索引来优化排序的情况
* 对不同的索引键做 ORDER BY :(key1,key2分别建立索引)
SELECT * FROM t1 ORDER BY key1, key2;

* 在非连续的索引键部分上做 ORDER BY:(key_part1,key_part2建立联合索引;key2建立索引)
SELECT * FROM t1 WHERE key2=constant ORDER BY key_part2;

* 同时使用了 ASC 和 DESC:(key_part1,key_part2建立联合索引)
SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC;

* 用于搜索记录的索引键和做 ORDER BY 的不是同一个:(key1,key2分别建立索引)
SELECT * FROM t1 WHERE key2=constant ORDER BY key1;

* 如果在WHERE和ORDER BY的栏位上应用表达式(函数)时,则无法利用索引来实现order by的优化
SELECT * FROM t1 ORDER BY YEAR(logindate) LIMIT 0,10;

特别提示:
1>mysql一次查询只能使用一个索引。如果要对多个字段使用索引,建立复合索引。
2>在ORDER BY操作中,MySQL只有在排序条件不是一个查询条件表达式的情况下才使用索引。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ryb7899/archive/2010/05/11/5580624.aspx追问啊这个讲的好详细也很到位,可是我发现我的WHERE字段是一个FULL-TEXT索引的TEXT类型字段.
这样好像就没法和ORDER BY的字段进行联合索引...MYSQL说不让这么建-.-

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中考,安徽省定远一中达标分数线,求真实 我女朋友要过生日了,她让我送她酸奶,另外让我每天为她叠一个飞机,等... dye one's hair blue和 color on'e hair blue有什么区别? 1=1,2+3+4=9,3+4+5+6+7=25,4+5+6+7+8+9+10=49…照此规律,第n个等式为... 观察下列等式, 1=1 2+3+4=9 3+4+5+6+7=25 4+5+6+7+8+9+10=49 按照此... 1=1 2+3+4=9 3+4+5+6+7=25 4+5+6+7+8+9+10=49 照此规律, 观察下列等式1=12+3+4=93+4+5+6+7=254+5+6+7+8+9+10=49照此规律,第五... ...3+4=93+4+5+6+7=254+5+6+7+8+9+10=49……照此规律,第 个等式为... ...关于EXCEL中输入3-4就会自动生成年月日,怎么不让它自动生成啊_百度... 我的excel自动生成日期 我输入数字就自动成为日期 如何取消呢_百度知 ... sql语句如何查询一个表中某一列的相同数据? order=asc&offset=0&limit=10怎么改 order by limit1 和limit100性能差别 改如何优化mysql的limit翻页sql语句呢? 如何优化Mysql千万级快速分页 mysql 增加排序 性能差很多 怎么优化 mysql limit 性能优化问题 详解mysql的limit经典用法及优化实例 酒酿鸡蛋怎么做 醪糟鸡蛋的做法? 美美酒酿蛋的做法? 鸡蛋酒酿制作有什么窍门? 酒酿蛋,和酒酿汤圆怎么做的?求方法和步骤? 酒酿蛋怎么做 做酒酿蛋时,酒酿需要煮吗? 酒酿蛋的功效和具体做法 甜酒酿蛋怎么做? 酒酿蛋的做法谁知道?? 酒酿蛋的传统正确做法是如何? 酒酿蛋怎么做好吃 mysql 的order by 和limit 一起怎么用? - 技术问答 荣耀V9的屏幕固定是什么意思 再求教各位高手一个奥数问题,谢谢! mysql 语句ORDER BY rand() 优化方法? mysql百万数据分页查询4秒,求教怎么优化 如何提高MySQL Limit查询的性能 MYSQL高手进来拿分咯 求sql 查询语句加where 和 ORDER BY 后耗时优化 mysql select * order by 索引 limit0,10 为什么是全表扫描 mysql order by慢怎么办 农业银行刷卡机显示服务器连接失败怎么办 POS机登陆失败的原因? pos机刷卡交易失败怎么回事 刷卡机连接服务器失败是什么原因 合利宝连接失败怎么回事 pos机连接服务器失败,钱去那了呢 移动pos机签到成功后显示数据连接失败是怎么回事 哪个软件买东西便宜又是正品? 无线刷卡机连接服务器失败? 网上用哪个软件买东西最靠谱,东西最好