oracle - 没有索引的唯一约束
问题描述
假设我有一张大桌子。
这个表不用查询,我只是想把里面的数据保存一会儿。
我想防止表中的重复行,所以我想添加一个唯一的
表上的约束(或 PK)。
但是自动创建的唯一索引确实是不必要的。
我不需要它,它只是在浪费磁盘空间并需要维护(不管创建它的时间长短)。
有没有办法在没有索引的情况下创建唯一约束(任何索引 - 唯一或非唯一)?
谢谢你。
解决方案
不,您不能在没有相应索引的情况下在 Oracle 中拥有 UNIQUE 约束。添加约束时会自动创建索引,任何删除索引的尝试都会导致错误
ORA-02429: cannot drop index used for enforcement of unique/primary key
祝你好运。
编辑
但是你说“假设我有一张大桌子”。那么我们在这里谈论多少行?看,1TB SSD 不到 100 美元。四核笔记本电脑低于 400 美元。如果您试图通过编写一堆适用性极低的代码来最小化存储使用或 CPU 消耗以“省钱”或“节省时间”,我的建议是您既浪费 时间又浪费金钱。我再说一遍——一 TB 的存储成本与一小时的程序员时间相同。一台全新的计算机的成本与程序员浪费四个小时的时间相同。尽你所能最大限度地减少编码时间,而不是传统的 CPU 时间或磁盘空间优化目标,你要好得多。因此,我认为 UNIQUE 索引是低成本的解决方案。
推荐阅读
- performance - 在限制目标文件数量的同时向 S3 (EMR) 写入性能问题,需要建议
- python - 如何使用 deepl api 解析答案?
- python - 运行 Flink 的 python 示例
- python - 在 Python 中,类名何时绑定?即我们何时/在哪里可以引用类名而不会得到“NameError”?
- javascript - 当前未启用对实验语法 'jsx' 的支持,将其添加到插件中但仍然无法正常工作
- javascript - 为什么不清除按钮功能不起作用?
- linux - 如何创建符号链接或硬链接到另一个符号链接?
- python - 如何在heroku django上上传和使用图片
- zpl - ZPL 打印 Null 归档条码图像
- excel - 在 Excel 中使用重置计算运行总和