可是怎么可能有几千万条记录呢,怎么会有几千万人呢?难道一个用户会到一定时间就自动失效?然后同一个用户会重复注册好几次?
你这个设计是否记录用户行为的?如果是的话,可以这样设计:
Users表:UserID,UserName, UserPassword
Actions表(用户行为):UserID(外键,指向Users表),ActionDT(datetime字段),Action...
后面的表一般不需要记录几年时间的,每半年导出一次,然后只保留最新记录即可。而Users表可以一直不删除,应该不会超过100万记录吧?

解决方案 »

  1.   

    呵呵,我理解他的意思是,有个表,有username字段,有时间datetime字段,如果
    有个username,在之前没有出现过,就算新增用户,要做这个查询,又怕速度问题。
    这个问题,数据多的时候速度肯定会慢,索引不可省略。
    查询可以用NOT EXISTS,大概:select username from tablename a
    where coltime >...
    and coltime <...
    and not exists (
    seelct 1 from tablename b
    where b.username=a.username
    and b.coltime <a.coltime
    )建议建三个索引:username、coltime、(username,coltime)来保证速度。
      

  2.   

    MSSQLSERVER2000:
    把这个表按年度或其它分成几个子表,查询的时候就查这几个子表;
    如果需要跨子表查询,那么再建这几个子表的视图...
    是不是很笨???
      

  3.   

    定义个JOB维护一下库嘛,不可能所有数据都有用的,常删删。