浏览 7513 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (6) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-03-05
数据库中,如果表的数据量很大,访问表的操作也比较频繁,用int做主键和用varchar做主键,int一定要比varchar好很多吗? 谢谢。 这个问题是这样产生的:现在一个项目中,用hibernate,我说用hibernate的uuid算法生成主键,但是一个同事说,那样的性能太差,一定要用int做主键。所以,就产生了现在这个问题。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-03-08
linuja 写道 请教一下:
数据库中,如果表的数据量很大,访问表的操作也比较频繁,用int做主键和用varchar做主键,int一定要比varchar好很多吗? 谢谢。 这个问题是这样产生的:现在一个项目中,用hibernate,我说用hibernate的uuid算法生成主键,但是一个同事说,那样的性能太差,一定要用int做主键。所以,就产生了现在这个问题。 理论上当然是int快。但这个快慢体现到你的系统中,会和你的数据库的规模有关。 |
|
返回顶楼 | |
发表时间:2005-03-08
linuja 写道 请教一下:
数据库中,如果表的数据量很大,访问表的操作也比较频繁,用int做主键和用varchar做主键,int一定要比varchar好很多吗? 谢谢。 这个问题是这样产生的:现在一个项目中,用hibernate,我说用hibernate的uuid算法生成主键,但是一个同事说,那样的性能太差,一定要用int做主键。所以,就产生了现在这个问题。 使用同机器字长相同的整数作为主键效率是最高的。 性能是否会差还要看你使用了多少外键作为连接条件,数据量有多大。对于小量的数据,几乎感觉不到它们的差别。 如果你的主键没有其他用途,你同事的建议也还合理,不过在集群的环境中产生的算法可能会复杂些。 |
|
返回顶楼 | |
发表时间:2005-03-08
OK,谢谢
|
|
返回顶楼 | |