当Oracle中删除其中一列时,多列索引(复合索引)会发生以下情况:
- 索引失效:如果删除的列是复合索引的第一列,那么整个索引将会失效,无法再被查询使用。因为复合索引是按照索引的第一列进行排序和存储的。
- 索引大小减小:删除其中一列后,复合索引的大小会减小。这是因为复合索引的大小取决于所有列的大小之和。删除一列后,索引的大小将减少。
- 查询性能变化:如果删除的列是复合索引的非第一列,那么索引仍然有效,但查询性能可能会受到影响。因为复合索引的非第一列只能在索引的第一列相同的情况下才能被使用。如果删除的列是经常被查询的列,那么查询性能可能会下降。
- 索引重建:如果需要重新建立索引,可以使用ALTER TABLE语句重新创建复合索引,包括删除的列。重新建立索引可以恢复索引的完整性和性能。
总结起来,当Oracle中删除其中一列时,多列索引(复合索引)会失效或性能受到影响,需要根据具体情况考虑是否重新建立索引。