我目前正在开发Oracle。我有几个表,我为其定义了FOREIGN KEY约束。我已经阅读了这个面向SQL Server的问题和面向MySQL的问题,但我找不到关于Oracle的问题。
所以问题总是一样的:为了优化查询性能,对于我为其创建FOREIGN KEY约束的那些列,我是否还必须创建一个显式的二级索引? Oracle是否自动在FOREIGN KEYed列上创建索引以提高JOIN期间的性能?
我通常执行WHERE子句与这些列进行比较的查询。
答案 0 :(得分:20)
不,Oracle不会自动在外键列上创建索引,即使在99%的情况下您可能应该这样做。除了帮助查询之外,索引还提高了父表上delete语句的性能。