看到有点论坛设计用户表的时候,分为两个,user,记录用户名及登录信息,字段较少, userData记录用户详细信息,字段较多这样做目的何在,是为了查询方便,还是为了提高查询效率,怎么个提高法的,为何不设计成一个表,在查询上做一下修改呢?还有个问题,像腾讯,网易等这样门户级网站对于用户表(千万,甚至亿级的)是怎么设计的,是一个表,还是设计成多个表,如何才能提高查询效率?

解决方案 »

  1.   

    sql server 以数据页为单位来存取数据的
    表上的列越多, 一页能存放的记录数越少, 也就意味着要查询数据的时候, 需要加载的页会很多, I/O开销大, 效率自然低
      

  2.   

    请问前辈,如果一个表大约有30列,但是20列都是NULL,是否意味着NULL值列同样影响I/O?
      

  3.   

    呵呵,邹建回答的真好。
    表上的列越多, 一页能存放的记录数越少, 也就意味着要查询数据的时候, 需要加载的页会很多, I/O开销大, 效率自然低.(在数据量大的时候)
    其实,这个跟MS-SQL的处理机制有关系。
      

  4.   

    一般来说,NULL值同样也会影响I/O的。