看到一个游戏服务器 Oracle DBA 创建的所有表没有一个表有设置主键、索引、唯一,NOT NULL的。
Oracle数据库字段都不需要设置主键 、 索引 、 唯一
还是Oracle 设置了这些性能上也没有多大区别
------解决方案--------------------
主键,索引,唯一是否设定由设计者决定,默认都是没有的。
设置和不设置的性能当然会有区别,这方面大部分数据库都是相通的。
------解决方案--------------------
好比在一本书查找东西,如果书的页码很少,有没有目录其实没什么影响。如果书的页码很多,目录就显得至关重要
------解决方案--------------------
ID值相同就不能只基于ID设置主键了,主键值必须唯一。至于他们为什么没有设置主键,这个就搞不懂了,不知道是不是跟他们业务有关系。
------解决方案--------------------
也许人家是高手
------解决方案--------------------
兼职dba呗。。
------解决方案--------------------
不知道是你们业务特殊需求,不设置主键、索引、唯一键。
建议在设计表时候要设计主键、索引、唯一键,这对性能有很大影响的,如果数据量不大的情况下不觉
如果数据量大的话,性能明显感觉低。
------解决方案--------------------
表原则上是有主键的,这得依据业务上的。
------解决方案--------------------
用来当成主键的字段没有设置为主键,也没有加索引,更没有加唯一。
而且ID的值是拼出来的,而不是自动递增序列产生的。
比如一个无限极层级分类。
表字段:ID,UPID,NAME,
ID字段的记录是根据UPID
------解决方案--------------------
( SELECT MAX(ID)+1 FROM TB WHERE UPID=$UPID)生成的
TB是现在讨论的表吗? 这个ID有没有其他表引用,如果没有现在还可以规范一下,解决数据冲突后设置成主键。
------解决方案--------------------
看到一个游戏服务器 Oracle DBA 创建的所有表没有一个表有设置主键、索引、唯一,NOT NULL的。
Oracle数据库字段都不需要设置主键 、 索引 、 唯一
还是Oracle 设置了这些性能上也没有多大区别
好比在一本书查找东西,如果书的页码很少,有没有目录其实没什么影响。如果书的页码很多,目录就显得至关重要
比喻很恰当