Oracle数据库字段都不需要设置主键 、 索引 、 唯一
还是Oracle 设置了这些性能上也没有多大区别
19 个解决方案
#1
主键,索引,唯一是否设定由设计者决定,默认都是没有的。
设置和不设置的性能当然会有区别,这方面大部分数据库都是相通的。
设置和不设置的性能当然会有区别,这方面大部分数据库都是相通的。
#2
好比在一本书查找东西,如果书的页码很少,有没有目录其实没什么影响。如果书的页码很多,目录就显得至关重要
#3
用来做游戏服的数据库,数据很多。但是那名DBA确实没有设置主键,而且ID的值还可以相同。
#4
ID值相同就不能只基于ID设置主键了,主键值必须唯一。至于他们为什么没有设置主键,这个就搞不懂了,不知道是不是跟他们业务有关系。
#5
现在一般的游戏服务器,人数应该不是很多,少于一万个用户应该。。。又不是啥比较大型的游戏
人数少的,可以不用
人数少的,可以不用
#6
索引主要是提高查询性能,数据量大且关键字没有重复的话最好创建主键,数据量大关键字有重复的话可以创建索引。
#7
索引主要是提高查询性能,数据量大且关键字没有重复的话最好创建主键,数据量大关键字有重复的话可以创建索引。
我也觉得是啊,数据库为什么所有的表没有一个有主键,连索引都没有。不解,国内一很大型的游戏运营平台
#8
主键,索引,唯一是否设定由设计者决定,默认都是没有的。
设置和不设置的性能当然会有区别,这方面大部分数据库都是相通的。
用来做游戏服的数据库,数据很多。但是那名DBA确实没有设置主键,而且ID的值还可以相同。
ID值相同就不能只基于ID设置主键了,主键值必须唯一。至于他们为什么没有设置主键,这个就搞不懂了,不知道是不是跟他们业务有关系。
我觉得奇怪的几点:
1)Oracle数据表总共100个左右,但是没有一个表有设置主键或者索引。
2)PHP连接Oracle数据库,很长时间没有连接,如果再连接,那么第一次会非常非常卡,非常卡,5~10秒的等待。
3)Toad 连接Oracle又需要重新连接。
#9
也许人家是高手
#10
兼职dba呗。。
#11
兼职dba呗。。
全职。
也许人家是高手
可能吧。
#12
围观长姿势
#13
不知道是你们业务特殊需求,不设置主键、索引、唯一键。
建议在设计表时候要设计主键、索引、唯一键,这对性能有很大影响的,如果数据量不大的情况下不觉
如果数据量大的话,性能明显感觉低。
建议在设计表时候要设计主键、索引、唯一键,这对性能有很大影响的,如果数据量不大的情况下不觉
如果数据量大的话,性能明显感觉低。
#14
表原则上是有主键的,这得依据业务上的。
#15
不知道是你们业务特殊需求,不设置主键、索引、唯一键。
建议在设计表时候要设计主键、索引、唯一键,这对性能有很大影响的,如果数据量不大的情况下不觉
如果数据量大的话,性能明显感觉低。
没有主键Primary Key,现在弄得很麻烦,经常出现两条ID一样的记录。而且插入记录有的时候会ID为空。
DBA说如果设置主键会影响性能,因为占用存储空间。
#16
表原则上是有主键的,这得依据业务上的。
用来当成主键的字段没有设置为主键,也没有加索引,更没有加唯一。
而且ID的值是拼出来的,而不是自动递增序列产生的。
比如一个无限极层级分类。
表字段:ID,UPID,NAME,
ID字段的记录是根据UPID || ( SELECT MAX(ID)+1 FROM TB WHERE UPID=$UPID)生成的
#17
用来当成主键的字段没有设置为主键,也没有加索引,更没有加唯一。
而且ID的值是拼出来的,而不是自动递增序列产生的。
比如一个无限极层级分类。
表字段:ID,UPID,NAME,
ID字段的记录是根据UPID || ( SELECT MAX(ID)+1 FROM TB WHERE UPID=$UPID)生成的
TB是现在讨论的表吗? 这个ID有没有其他表引用,如果没有现在还可以规范一下,解决数据冲突后设置成主键。
#18
看到一个游戏服务器 Oracle DBA 创建的所有表没有一个表有设置主键、索引、唯一,NOT NULL的。
Oracle数据库字段都不需要设置主键 、 索引 、 唯一
还是Oracle 设置了这些性能上也没有多大区别
好比在一本书查找东西,如果书的页码很少,有没有目录其实没什么影响。如果书的页码很多,目录就显得至关重要
比喻很恰当
#19
用来当成主键的字段没有设置为主键,也没有加索引,更没有加唯一。
而且ID的值是拼出来的,而不是自动递增序列产生的。
比如一个无限极层级分类。
表字段:ID,UPID,NAME,
ID字段的记录是根据UPID || ( SELECT MAX(ID)+1 FROM TB WHERE UPID=$UPID)生成的
TB是现在讨论的表吗? 这个ID有没有其他表引用,如果没有现在还可以规范一下,解决数据冲突后设置成主键。
今天问了决策者,确实主键、索引是必须要有的。不过现在还没有加,他说是等所有做完了之后,再加上主键、索引。
#20
#1
主键,索引,唯一是否设定由设计者决定,默认都是没有的。
设置和不设置的性能当然会有区别,这方面大部分数据库都是相通的。
设置和不设置的性能当然会有区别,这方面大部分数据库都是相通的。
#2
看到一个游戏服务器 Oracle DBA 创建的所有表没有一个表有设置主键、索引、唯一,NOT NULL的。
Oracle数据库字段都不需要设置主键 、 索引 、 唯一
还是Oracle 设置了这些性能上也没有多大区别
好比在一本书查找东西,如果书的页码很少,有没有目录其实没什么影响。如果书的页码很多,目录就显得至关重要
#3
主键,索引,唯一是否设定由设计者决定,默认都是没有的。
设置和不设置的性能当然会有区别,这方面大部分数据库都是相通的。
用来做游戏服的数据库,数据很多。但是那名DBA确实没有设置主键,而且ID的值还可以相同。
#4
主键,索引,唯一是否设定由设计者决定,默认都是没有的。
设置和不设置的性能当然会有区别,这方面大部分数据库都是相通的。
用来做游戏服的数据库,数据很多。但是那名DBA确实没有设置主键,而且ID的值还可以相同。
ID值相同就不能只基于ID设置主键了,主键值必须唯一。至于他们为什么没有设置主键,这个就搞不懂了,不知道是不是跟他们业务有关系。
#5
现在一般的游戏服务器,人数应该不是很多,少于一万个用户应该。。。又不是啥比较大型的游戏
人数少的,可以不用
人数少的,可以不用
#6
索引主要是提高查询性能,数据量大且关键字没有重复的话最好创建主键,数据量大关键字有重复的话可以创建索引。
#7
索引主要是提高查询性能,数据量大且关键字没有重复的话最好创建主键,数据量大关键字有重复的话可以创建索引。
我也觉得是啊,数据库为什么所有的表没有一个有主键,连索引都没有。不解,国内一很大型的游戏运营平台
#8
主键,索引,唯一是否设定由设计者决定,默认都是没有的。
设置和不设置的性能当然会有区别,这方面大部分数据库都是相通的。
用来做游戏服的数据库,数据很多。但是那名DBA确实没有设置主键,而且ID的值还可以相同。
ID值相同就不能只基于ID设置主键了,主键值必须唯一。至于他们为什么没有设置主键,这个就搞不懂了,不知道是不是跟他们业务有关系。
我觉得奇怪的几点:
1)Oracle数据表总共100个左右,但是没有一个表有设置主键或者索引。
2)PHP连接Oracle数据库,很长时间没有连接,如果再连接,那么第一次会非常非常卡,非常卡,5~10秒的等待。
3)Toad 连接Oracle又需要重新连接。
#9
也许人家是高手
#10
兼职dba呗。。
#11
兼职dba呗。。
全职。
也许人家是高手
可能吧。
#12
围观长姿势
#13
不知道是你们业务特殊需求,不设置主键、索引、唯一键。
建议在设计表时候要设计主键、索引、唯一键,这对性能有很大影响的,如果数据量不大的情况下不觉
如果数据量大的话,性能明显感觉低。
建议在设计表时候要设计主键、索引、唯一键,这对性能有很大影响的,如果数据量不大的情况下不觉
如果数据量大的话,性能明显感觉低。
#14
表原则上是有主键的,这得依据业务上的。
#15
不知道是你们业务特殊需求,不设置主键、索引、唯一键。
建议在设计表时候要设计主键、索引、唯一键,这对性能有很大影响的,如果数据量不大的情况下不觉
如果数据量大的话,性能明显感觉低。
没有主键Primary Key,现在弄得很麻烦,经常出现两条ID一样的记录。而且插入记录有的时候会ID为空。
DBA说如果设置主键会影响性能,因为占用存储空间。
#16
表原则上是有主键的,这得依据业务上的。
用来当成主键的字段没有设置为主键,也没有加索引,更没有加唯一。
而且ID的值是拼出来的,而不是自动递增序列产生的。
比如一个无限极层级分类。
表字段:ID,UPID,NAME,
ID字段的记录是根据UPID || ( SELECT MAX(ID)+1 FROM TB WHERE UPID=$UPID)生成的
#17
用来当成主键的字段没有设置为主键,也没有加索引,更没有加唯一。
而且ID的值是拼出来的,而不是自动递增序列产生的。
比如一个无限极层级分类。
表字段:ID,UPID,NAME,
ID字段的记录是根据UPID || ( SELECT MAX(ID)+1 FROM TB WHERE UPID=$UPID)生成的
TB是现在讨论的表吗? 这个ID有没有其他表引用,如果没有现在还可以规范一下,解决数据冲突后设置成主键。
#18
看到一个游戏服务器 Oracle DBA 创建的所有表没有一个表有设置主键、索引、唯一,NOT NULL的。
Oracle数据库字段都不需要设置主键 、 索引 、 唯一
还是Oracle 设置了这些性能上也没有多大区别
好比在一本书查找东西,如果书的页码很少,有没有目录其实没什么影响。如果书的页码很多,目录就显得至关重要
比喻很恰当
#19
用来当成主键的字段没有设置为主键,也没有加索引,更没有加唯一。
而且ID的值是拼出来的,而不是自动递增序列产生的。
比如一个无限极层级分类。
表字段:ID,UPID,NAME,
ID字段的记录是根据UPID || ( SELECT MAX(ID)+1 FROM TB WHERE UPID=$UPID)生成的
TB是现在讨论的表吗? 这个ID有没有其他表引用,如果没有现在还可以规范一下,解决数据冲突后设置成主键。
今天问了决策者,确实主键、索引是必须要有的。不过现在还没有加,他说是等所有做完了之后,再加上主键、索引。