求讨论~求点明~
12 个解决方案
#1
自增列在查询的时候比较有用 因为是INT的 所以占用空间少 查询效率高
#2
这个主要是需求的应用上了。
就好比钳子,可以开瓶盖,可以拔钉子,等等。很多应用的方法。
自增通常是给一个唯一ID最为方便。不用自己写增量算法。
如果本身别的字段就可以完全作为主键唯一。我个人觉得自增的ID可以不用。(当然很多人还是加上来防止恶意删除的判定手段,断号!)当然,这个也是得看应用具体需求的。
更多的场景还是得具体分析。lz可以从实践中多应用应用即可。
不要限制,当年发现无线电的时候,没人知道要干点儿啥对吧。呵呵,参考。
就好比钳子,可以开瓶盖,可以拔钉子,等等。很多应用的方法。
自增通常是给一个唯一ID最为方便。不用自己写增量算法。
如果本身别的字段就可以完全作为主键唯一。我个人觉得自增的ID可以不用。(当然很多人还是加上来防止恶意删除的判定手段,断号!)当然,这个也是得看应用具体需求的。
更多的场景还是得具体分析。lz可以从实践中多应用应用即可。
不要限制,当年发现无线电的时候,没人知道要干点儿啥对吧。呵呵,参考。
#3
不会扩展为多系统合并的系统,都可以放心地使用自增字段
#4
如果表中不设置主键,建议可以设置自增列,在查询的时候会提高效率。大多情况下,是否设置自增列还是需要根据实际情况而定的。
#5
你自己考虑过什么时候使用没?
#6
there is no single true answer for this questions.
#7
我是觉得表的数据量大的时候查询方便
但发觉自己用的时候总是不自觉的加上自增列,如果一个表是那种基础信息固定几个记录的表
比如Table1,只有固定的五行数据,四列
1,CodeA,NameA,DescA
2,CodeB,NameB,DescB
3,CodeC,NameC,DescC
4,CodeD,NameD,DescD
5,CodeE,NameE,DescE
以后也不会大量增加数据了,甚至会一直就这5条数据,这个时候觉得自增列很多余....
#8
自增列和数据量不是非常有关系,但是往往也业务逻辑有关系,有些表,可以找到主键,但是主键可能是非常长的数据类型,比如varchar(200),这些即使做主键性能也不高,这时候可以考虑用代理键,自增列是比较不错的代理键,但是自增有一些限制,所以用的时候最好考虑一下会不会出现,如何应对出现,常见限制有:
1、单表,identity只存在于单表。
2、可能断号,如果delete了中间一行数据下一行就不连续了。
3、高并发操作过程中,获取上一个自增号是否有问题
1、单表,identity只存在于单表。
2、可能断号,如果delete了中间一行数据下一行就不连续了。
3、高并发操作过程中,获取上一个自增号是否有问题
#9
说的很详细,进来学习!
#10
具体问题具体分析了
需要时:如果写代码是用代码机器人产生的,估计每个表都要加自增列了;C#删除时好定位(对于多个字段联合作主键时);没有字段作主键,去重时很方便
不需要时:有其他字段作主键时可以不用
需要时:如果写代码是用代码机器人产生的,估计每个表都要加自增列了;C#删除时好定位(对于多个字段联合作主键时);没有字段作主键,去重时很方便
不需要时:有其他字段作主键时可以不用
#11
非常感谢各位的回答~
我已经对自增列的使用有一些感想了~
结帖给分吧
我已经对自增列的使用有一些感想了~
结帖给分吧
#1
自增列在查询的时候比较有用 因为是INT的 所以占用空间少 查询效率高
#2
这个主要是需求的应用上了。
就好比钳子,可以开瓶盖,可以拔钉子,等等。很多应用的方法。
自增通常是给一个唯一ID最为方便。不用自己写增量算法。
如果本身别的字段就可以完全作为主键唯一。我个人觉得自增的ID可以不用。(当然很多人还是加上来防止恶意删除的判定手段,断号!)当然,这个也是得看应用具体需求的。
更多的场景还是得具体分析。lz可以从实践中多应用应用即可。
不要限制,当年发现无线电的时候,没人知道要干点儿啥对吧。呵呵,参考。
就好比钳子,可以开瓶盖,可以拔钉子,等等。很多应用的方法。
自增通常是给一个唯一ID最为方便。不用自己写增量算法。
如果本身别的字段就可以完全作为主键唯一。我个人觉得自增的ID可以不用。(当然很多人还是加上来防止恶意删除的判定手段,断号!)当然,这个也是得看应用具体需求的。
更多的场景还是得具体分析。lz可以从实践中多应用应用即可。
不要限制,当年发现无线电的时候,没人知道要干点儿啥对吧。呵呵,参考。
#3
不会扩展为多系统合并的系统,都可以放心地使用自增字段
#4
如果表中不设置主键,建议可以设置自增列,在查询的时候会提高效率。大多情况下,是否设置自增列还是需要根据实际情况而定的。
#5
你自己考虑过什么时候使用没?
#6
there is no single true answer for this questions.
#7
我是觉得表的数据量大的时候查询方便
但发觉自己用的时候总是不自觉的加上自增列,如果一个表是那种基础信息固定几个记录的表
比如Table1,只有固定的五行数据,四列
1,CodeA,NameA,DescA
2,CodeB,NameB,DescB
3,CodeC,NameC,DescC
4,CodeD,NameD,DescD
5,CodeE,NameE,DescE
以后也不会大量增加数据了,甚至会一直就这5条数据,这个时候觉得自增列很多余....
#8
自增列和数据量不是非常有关系,但是往往也业务逻辑有关系,有些表,可以找到主键,但是主键可能是非常长的数据类型,比如varchar(200),这些即使做主键性能也不高,这时候可以考虑用代理键,自增列是比较不错的代理键,但是自增有一些限制,所以用的时候最好考虑一下会不会出现,如何应对出现,常见限制有:
1、单表,identity只存在于单表。
2、可能断号,如果delete了中间一行数据下一行就不连续了。
3、高并发操作过程中,获取上一个自增号是否有问题
1、单表,identity只存在于单表。
2、可能断号,如果delete了中间一行数据下一行就不连续了。
3、高并发操作过程中,获取上一个自增号是否有问题
#9
说的很详细,进来学习!
#10
具体问题具体分析了
需要时:如果写代码是用代码机器人产生的,估计每个表都要加自增列了;C#删除时好定位(对于多个字段联合作主键时);没有字段作主键,去重时很方便
不需要时:有其他字段作主键时可以不用
需要时:如果写代码是用代码机器人产生的,估计每个表都要加自增列了;C#删除时好定位(对于多个字段联合作主键时);没有字段作主键,去重时很方便
不需要时:有其他字段作主键时可以不用
#11
非常感谢各位的回答~
我已经对自增列的使用有一些感想了~
结帖给分吧
我已经对自增列的使用有一些感想了~
结帖给分吧