qq_41265012
2018-06-01 06:23
采纳率: 69%
浏览 6.9k

mysql 审核status字段 是否需要加索引

status字段0或者1,判断是否审核通过,0只是最新几行会出现,后面几十万行,都是1.请问是否需要创建索引?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

10条回答 默认 最新

  • a718089112 2018-06-01 06:48
    最佳回答

    试验了一下:参考下,表结构如下如,sql总共1010000条数据。前99条status=0 后面都为1:
    图片说明

    status建立索引前:
    
    [SQL]select count(*) from sys_user ;
    受影响的行: 0
    时间: 0.166s
    [SQL]
    SELECT * from sys_user where `status` = 0 ;
    受影响的行: 0
    时间: 0.235s
    [SQL]
    SELECT * from sys_user where `status` = 1 ;
    受影响的行: 0
    时间: 0.514s
    
    
    [SQL]select count(*) from sys_user ;
    受影响的行: 0
    时间: 0.165s
    [SQL]
    SELECT * from sys_user where `status` = 0 ;
    受影响的行: 0
    时间: 0.232s
    [SQL]
    SELECT * from sys_user where `status` = 1 ;
    受影响的行: 0
    时间: 0.515s
    
    [SQL]select count(*) from sys_user ;
    受影响的行: 0
    时间: 0.165s
    [SQL]
    SELECT * from sys_user where `status` = 0 ;
    受影响的行: 0
    时间: 0.232s
    [SQL]
    SELECT * from sys_user where `status` = 1 ;
    受影响的行: 0
    时间: 0.512s
    
    status建立索引后:
    
    [SQL]select count(*) from sys_user ;
    受影响的行: 0
    时间: 0.148s
    [SQL]
    SELECT * from sys_user where `status` = 0 ;
    受影响的行: 0
    时间: 0.001s
    [SQL]
    SELECT * from sys_user where `status` = 1 ;
    受影响的行: 0
    时间: 1.098s
    
    [SQL]select count(*) from sys_user ;
    受影响的行: 0
    时间: 0.147s
    [SQL]
    SELECT * from sys_user where `status` = 0 ;
    受影响的行: 0
    时间: 0.001s
    [SQL]
    SELECT * from sys_user where `status` = 1 ;
    受影响的行: 0
    时间: 1.098s
    
    [SQL]select count(*) from sys_user ;
    受影响的行: 0
    时间: 0.147s
    [SQL]
    SELECT * from sys_user where `status` = 0 ;
    受影响的行: 0
    时间: 0.001s
    [SQL]
    SELECT * from sys_user where `status` = 1 ;
    受影响的行: 0
    时间: 1.137s
    
    评论
    解决 2 无用
    打赏 举报
查看更多回答(9条)

相关推荐 更多相似问题