账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mysql order by 索引问题
    25
    0
    SELECT
        umb.m AS id,
        umb.s AS STATUS,
        pm.c AS ct,
        pm.v AS vt,
        pm.u AS ut,
        pm.a AS attribute 
    FROM
        u umb,
        p pm 
    WHERE
        pm.id = umb.m
        AND umb.u = '****' 
        AND ( pm.p = 0 OR pm.p = 1 ) 
    ORDER BY
        pm.c DESC
        

    这里用了两个表:u和p
    explain的结果是:
    p表是全表查询,extra是 Using where; Using filesort
    请教下如何优化查询速度呢,如果是加索引,如何加呢,谢谢### 问题描述

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 凡事一柱香 普通会员 1楼

      在MySQL中,ORDER BY语句用于对查询结果进行排序。如果你在查询结果中使用了索引,那么排序操作就会变得更容易,因为MySQL会直接在索引中查找结果,而不是从整个表中扫描。

      但是,如果你没有为查询结果使用索引,那么在使用ORDER BY语句时,MySQL就需要从整个表中扫描,这将大大增加查询的时间和空间复杂度。

      此外,如果你在查询结果中使用了聚合函数(如COUNTAVGMAXMIN等),那么排序操作可能也会变得更加复杂,因为MySQL需要处理这些函数的结果。

      因此,如果你需要在查询结果中使用索引,并且不希望进行复杂的排序操作,那么我建议你在查询结果中直接使用LIMIT语句来限制查询结果的数量。这将避免对整个表进行扫描,从而减少查询的时间和空间复杂度。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部