表名 table1
字段名 id       ipaddress       user          logtime           action
      1      192.168.1.203     root      2001-2-3 12:00:00     开始
       2      192.168.0.222     apple     2005-3-2 0:00:00      开始
       3      192.168.1.203     root      2003-3-15 12:23:00    结束
       ........................
表基本上如上,系统随机的为某个登录用户分配ip地址,某个用户会多次出现,某个ip也会多次被分配;
给你某个ip以及他的登录时间,来查询用户!数据库记录有2000万条
怎么处理,效率会比较高呢?
请给出sql语句,还有你的建议(稍微详细点)
多谢

解决方案 »

  1.   

    select user from table1 where ipaddress=@ipaddress and logtime=@logtime
    ID是主键?
    可以在ipaddress和logtime上面建立索引.
      

  2.   

    在logtime字段中,只是登录时间和下线时间,我要查的是某个时间(在这两个时刻之间)
    这里的id可以作为主键,但没有什么意义,只是表示记录的1、2、3、4........条
    谢谢,请继续解答
      

  3.   

    也就是说:
    1.某个时刻(已知)为用户(未知)分配了某个ip(已知)
    2.根据上面的两个已知条件来查询是哪个用户在这个时刻使用这个ip
    3.某个用户会多次出现,某个ip也会多次被分配; 
     
      

  4.   

    也就是说:
    1.某个时刻(已知)为用户(未知)分配了某个ip(已知)
    2.根据上面的两个已知条件来查询是哪个用户在这个时刻使用这个ip
    3.当然,某个用户会多次出现,某个ip也会多次被分配;ip是随即分配的
     
     
      

  5.   

    ip+时间做非聚集覆盖索引
    2000w条显得有点大
    按时间把表水平拆分
      

  6.   

    在sql中如何查询除自身外,还有没有具有某个特性的记录!
    语句怎么写呢?