关于主键自增问题

liangyingping 2012-06-27 10:08:30
请教一个是事情:
我在做二次开发的时候
发现一种处理表自增的方式:所有表的Id主键都是Nvarchar(10),所有表的ID 最大值 都统一存放在另一个表(表.A,两列:一列是常规表的标示。一列是常规表ID的最大值)里面。在每次插入数据的时候,都往表.A 查询。返回对应的ID最大值+1,通过这种方式做表的ID自增唯一处理。最后把表.A的最大值更新。

这种方式有什么好处?
我找到比较靠谱的答案是 很久以前只有数据库只有int16 处理大数据自增的时候 会超过临界。所以用这种方式。

不知道还有没有其他答案。

我在考虑要不要去掉这种方式,因为过多的查询,太影响数据批量插入的速度。
...全文
12299 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangyingping 2012-07-25
  • 打赏
  • 举报
回复
这么久没人理,
原因我大概知道了。
1,就是我说的那个,int16的问题。
2,有些数据库 如oracle 是没有自增这个功能的,
3,在批量写入数据库中时,会比较效率。比如主从表的时候,不再需要主表插入后,取到主表ID再插入明显。

8,028

社区成员

发帖
与我相关
我的任务
社区描述
高性能数据库开发
社区管理员
  • 高性能数据库开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧