qq_41265012 2018-06-01 06:23 采纳率: 70%
浏览 7083
已采纳

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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(9条)

报告相同问题?