请问sql数据库中一定要有标识列吗?
数据库表一定要有标识列(即自增列)才算性能优秀吗?如何来设计数据库表达到最优呢?一定要有自增列吗?...
数据库表一定要有标识列(即自增列)才算性能优秀吗?如何来设计数据库表达到最优呢?一定要有自增列吗?
展开
3个回答
展开全部
现在的数据库基本都是关系型的,很大的问题就是数据冗余,为了解决这个问题就引入主键和外键的概念。所以能够用最小的数据量标识表中的一条记录,是数据库性能调优很关键的方法。那么表中现有的数据列如果不能唯一的标识表中记录,可能就需要多列同时使用,也就是复合主键,这样的数据库无论是编程还是查询,都很难达到理想的状态,所以只好增加一列对数据毫无用处的列,做标识列,目的就是唯一的定位记录,这是关系型数据库的惯用做法。但不是一定的,如果表中现有的属性可以唯一标识表中记录的话,就可以不用标识列,同样优秀。
展开全部
标识列只是用来确保一张表的一条数唯一性
一般都是主键,无需插入
你设置主键不用标识 也是可以的
必须每次插入数据取得最大ID 然后 ID+1 手动插入
这个还是要看系统的要求了,
比方说有数据
ID
1
2
3
4
5
删除第ID为3的时候结果将为
1
2
4
5
那么数据缺失了3 如果你设置了标示列,再插入ID为6,没有标示可以找到缺失插入ID可为3
至于用不用标示 个人习惯吧,标示列与性能没关系,对数据的完整性有约束
一般都是主键,无需插入
你设置主键不用标识 也是可以的
必须每次插入数据取得最大ID 然后 ID+1 手动插入
这个还是要看系统的要求了,
比方说有数据
ID
1
2
3
4
5
删除第ID为3的时候结果将为
1
2
4
5
那么数据缺失了3 如果你设置了标示列,再插入ID为6,没有标示可以找到缺失插入ID可为3
至于用不用标示 个人习惯吧,标示列与性能没关系,对数据的完整性有约束
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
无所谓的!有也可以,没有也可以,但是要有主键
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询