ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » MySQL及其它开源数据库 » mysql主键应该怎么设定?就是用自增字段吗?

标题: mysql主键应该怎么设定?就是用自增字段吗?
离线 weilaiyxj
怒放的生命


来自 大连
精华贴数 0
个人空间 0
技术积分 519 (3716)
社区积分 3 (20465)
注册日期 2004-10-15
论坛徽章:0
      
      

发表于 2008-5-25 10:13 
mysql主键应该怎么设定?就是用自增字段吗?

mysql主键应该怎么设定?就是用自增字段吗?

还是说应该有跟业务有关的字段作为主键。


__________________
我的blog

曾经多少次跌倒在路上曾经多少次折断过翅膀 如今我已不再感到彷徨我想超越这平凡的生活 我想要怒放的生命就象飞翔在辽阔的天空就象穿行在无边的旷野拥有挣脱一切的力量
只看该作者    顶部
离线 jinguanding
Eugene


来自 上海
精华贴数 1
个人空间 70
技术积分 2397 (654)
社区积分 78 (3919)
注册日期 2007-3-29
论坛徽章:5
现任管理团队成员2008北京奥运纪念徽章:乒乓球2008北京奥运纪念徽章:柔道生肖徽章2007版:鼠ITPUB新首页上线纪念徽章 
      

发表于 2008-5-25 13:30 


QUOTE:
原帖由 weilaiyxj 于 2008-5-25 10:13 发表
mysql主键应该怎么设定?就是用自增字段吗?

还是说应该有跟业务有关的字段作为主键。

至于是那个字段作为自增字段,这个肯定根据你需求而定....
One Table  have only one Auto_Increment that column is must to be Primary key.



至于你问: mysql主键应该怎么设定?就是用自增字段吗?
主键如何设置加上 Primary key或者结束定义的地方加上 Create Table tablename(................,Primary key(columnname))

主键是否要设置为 Auto_Increment的问题。。我觉得是不是问点有点太差了,也只有数字类型的字段可以设置为Auto_Increment,其他类型不行。。
没人说主键一定要是自增的,但是自增加的字段必须是主键且是数字类型


这下应该能看明白吧


__________________
.....做人做事尽心尽力,做学问谦虚求根问底.......
......***寻MySQL方面的兼职***......
.....专业的综合布线、安防公司........................
......www.showgold.cn..............................
......上海亮金信息技术有限公司.......................
只看该作者    顶部
离线 weilaiyxj
怒放的生命


来自 大连
精华贴数 0
个人空间 0
技术积分 519 (3716)
社区积分 3 (20465)
注册日期 2004-10-15
论坛徽章:0
      
      

发表于 2008-5-26 10:34 
可能是我问的不是太确切。


我说的怎么设定 应该是怎么选择的问题。 是不是专门有个自增字段当主键。 (而这个主键可以跟业务没有关系。)


__________________
我的blog

曾经多少次跌倒在路上曾经多少次折断过翅膀 如今我已不再感到彷徨我想超越这平凡的生活 我想要怒放的生命就象飞翔在辽阔的天空就象穿行在无边的旷野拥有挣脱一切的力量
只看该作者    顶部
离线 jinguanding
Eugene


来自 上海
精华贴数 1
个人空间 70
技术积分 2397 (654)
社区积分 78 (3919)
注册日期 2007-3-29
论坛徽章:5
现任管理团队成员2008北京奥运纪念徽章:乒乓球2008北京奥运纪念徽章:柔道生肖徽章2007版:鼠ITPUB新首页上线纪念徽章 
      

发表于 2008-5-26 11:38 
我觉得已经说的非常清楚了,如何设置......


以及设置为自增字段的,必须具备的条件


你问的问题,确实有点让人难以理解


__________________
.....做人做事尽心尽力,做学问谦虚求根问底.......
......***寻MySQL方面的兼职***......
.....专业的综合布线、安防公司........................
......www.showgold.cn..............................
......上海亮金信息技术有限公司.......................
只看该作者    顶部
离线 sky000
一般会员



精华贴数 0
个人空间 0
技术积分 207 (9131)
社区积分 1 (34896)
注册日期 2004-3-3
论坛徽章:1
生肖徽章2007版:鸡     
      

发表于 2008-5-26 19:24 
楼主,对于一个表主键的选择,从架构设计角度来说,尽量设计一个与业务无关的字段来作为主键会对系统更好
当然,这势必会增加表数据量的大小,可能有些人会认为这个副作用不值得而选择一个有业务意义的字段(或者多个字段)来作为主键

但是对于大多数时候,这个字段所增加的物理存储空间实际上是很小的,并没有很多人想象的那么可怕。而带来逻辑上的简单是很可观的。

另外,是否选择自增类型作为主键,这个可以说是各有好处,如果用自增,应用可以不care这个主键的值得设定,但是有在高并发下成为瓶颈的风险,当然如果并发并不是非常非常高的话,一般不会成为瓶颈。如果自己控制这个主键值的话,应哟娜更需要付出一点点代价来生成这个值,并发问题可以通过扩展应用集群来解决。


__________________
只看该作者    顶部
在线/呼叫 yueliangdao0608
斑竹
上帝他爸


来自 中国-红灯区-深圳
精华贴数 0
个人空间 0
技术积分 3991 (359)
社区积分 1471 (736)
注册日期 2005-2-25
论坛徽章:19
现任管理团队成员紫蜘蛛玉兔2008北京奥运纪念徽章:花样游泳2008北京奥运纪念徽章:击剑2008北京奥运纪念徽章:足球
2008北京奥运纪念徽章:垒球2008北京奥运纪念徽章:拳击2008北京奥运纪念徽章:手球2008北京奥运纪念徽章:自行车  

发表于 2008-5-27 15:42 


QUOTE:
原帖由 sky000 于 2008-5-26 19:24 发表
楼主,对于一个表主键的选择,从架构设计角度来说,尽量设计一个与业务无关的字段来作为主键会对系统更好
当然,这势必会增加表数据量的大小,可能有些人会认为这个副作用不值得而选择一个有业务意义的字段(或者多个字段)来作为主键

但是对于大多数时候,这个字段所增加的物理存储空间实际上是很小的,并没有很多人想象的那么可怕。而带来逻辑上的简单是很可观的。

另外,是否选择自增类型作为主键,这个可以说是各有好处,如果用自增,应用可以不care这个主键的值得设定,但是有在高并发下成为瓶颈的风险,当然如果并发并不是非常非常高的话,一般不会成为瓶颈。如果自己控制这个主键值的话,应哟娜更需要付出一点点代价来生成这个值,并发问题可以通过扩展应用集群来解决。

Yeah.auto_increment will be a bottleneck in the near future.
especially with the high concurrency.


__________________
-------------------------------------------------------
以前搞维护-搞软件-搞网站-现在搞DBA ---
点击这里访问我的技术博客

最近在练习英语中。。。
Losing my face!
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问