刚要做一个大数据量的系统,因为以前对于数据库考虑的少,所以了解的也少,因为大数据量,不得不重视数据库性能问题。
我这有个简单的疑惑:
比如我有2张表,一张是会员表,会员的ID和帐号唯一,ID是自增的decimal(8,0);帐号是varchar(10).页面显示和搜索单这个两个是偏重帐号的。(因为自增的ID没有辨识性)。然后在另外一张表存着跟会员表关联的信息。我外键取ID好还是帐号好?请大侠不吝指点一二。(我最初是选的ID,因为数值类型,想的也简单,占数据空间也小。但是搜索的时候,可能是侧重帐号搜索,这就牵涉到选哪个做聚集索引,本来以前简单的数据库都是主键做的聚集索引,这次我找了一下资料,稍微对数据库优化有了点认识,所以我认为可能还是帐号做聚集索引好,如果帐号做聚集索引,我在想其他表的外键是否也是用帐号字段好~~这是我的想法,不对的对方,请大侠指正)在线等~~
我这有个简单的疑惑:
比如我有2张表,一张是会员表,会员的ID和帐号唯一,ID是自增的decimal(8,0);帐号是varchar(10).页面显示和搜索单这个两个是偏重帐号的。(因为自增的ID没有辨识性)。然后在另外一张表存着跟会员表关联的信息。我外键取ID好还是帐号好?请大侠不吝指点一二。(我最初是选的ID,因为数值类型,想的也简单,占数据空间也小。但是搜索的时候,可能是侧重帐号搜索,这就牵涉到选哪个做聚集索引,本来以前简单的数据库都是主键做的聚集索引,这次我找了一下资料,稍微对数据库优化有了点认识,所以我认为可能还是帐号做聚集索引好,如果帐号做聚集索引,我在想其他表的外键是否也是用帐号字段好~~这是我的想法,不对的对方,请大侠指正)在线等~~
因为帐号是唯一的,所以我考虑到用帐号了,因为如果用ID的话,有时候页面我只要显示帐号信息,本来是帐号可以一张表直接获取,但是如果是ID的话,我还得级联表做操作~~等待更佳的答案~~
或者说我还是改回原来的,让ID做聚集索引,外键也是用ID,然后显示数据时候做级联~~~
就你说的前提,我在想既然是大数据量的话,一般账号也是没有辨识性了~哪个做聚集索引应该是很重要的~虽然我跟你一样也是新手~你提到的确实也是要想的。
我的建议很明确,既然账号和ID都没有辨识性,就目前来说,肯定是ID做聚集索引来的好,于是外键也有ID做来的好--反正你也是以前没考虑过,所以现在犹豫不定,自己做例子测试具体效果又怕麻烦嘛(哈哈,被我说中了吧)
如果你的海量数据是搜索的关键是日期~~那我要建议你把日期做聚集索引,现在就可以考虑起来。因为聚集索引应该是大批量数据查找的时候效果明显。。我也是看资料学的,嘿嘿