刚要做一个大数据量的系统,因为以前对于数据库考虑的少,所以了解的也少,因为大数据量,不得不重视数据库性能问题。
我这有个简单的疑惑:
比如我有2张表,一张是会员表,会员的ID和帐号唯一,ID是自增的decimal(8,0);帐号是varchar(10).页面显示和搜索单这个两个是偏重帐号的。(因为自增的ID没有辨识性)。然后在另外一张表存着跟会员表关联的信息。我外键取ID好还是帐号好?请大侠不吝指点一二。(我最初是选的ID,因为数值类型,想的也简单,占数据空间也小。但是搜索的时候,可能是侧重帐号搜索,这就牵涉到选哪个做聚集索引,本来以前简单的数据库都是主键做的聚集索引,这次我找了一下资料,稍微对数据库优化有了点认识,所以我认为可能还是帐号做聚集索引好,如果帐号做聚集索引,我在想其他表的外键是否也是用帐号字段好~~这是我的想法,不对的对方,请大侠指正)在线等~~

解决方案 »

  1.   

    ID和帐号同时做个索引不就完了,何必这么费事,外键还是ID好
      

  2.   

    我说的是聚集索引和非聚集索引~~一张表只能有一个聚集索引~~这两个效率上应该是有区别的吧!
    因为帐号是唯一的,所以我考虑到用帐号了,因为如果用ID的话,有时候页面我只要显示帐号信息,本来是帐号可以一张表直接获取,但是如果是ID的话,我还得级联表做操作~~等待更佳的答案~~
      

  3.   

    我有看了点资料,貌似聚集索引是要可以确定范围的,这样的话,如果是char类型,可能不是很适合做聚集索引。。
    或者说我还是改回原来的,让ID做聚集索引,外键也是用ID,然后显示数据时候做级联~~~
      

  4.   

    是你啊,你很爱迷茫哦~哈哈~相信你应该也自己有在查资料~我觉得还是要具体问题具体分析~~
    就你说的前提,我在想既然是大数据量的话,一般账号也是没有辨识性了~哪个做聚集索引应该是很重要的~虽然我跟你一样也是新手~你提到的确实也是要想的。
    我的建议很明确,既然账号和ID都没有辨识性,就目前来说,肯定是ID做聚集索引来的好,于是外键也有ID做来的好--反正你也是以前没考虑过,所以现在犹豫不定,自己做例子测试具体效果又怕麻烦嘛(哈哈,被我说中了吧)
    如果你的海量数据是搜索的关键是日期~~那我要建议你把日期做聚集索引,现在就可以考虑起来。因为聚集索引应该是大批量数据查找的时候效果明显。。我也是看资料学的,嘿嘿