Oracle中外键不加索引的一些思考
Oracle中外键不加索引可能会导致3个问题,这里的外键包括Oracle所有种类的外键(普通外键、级联外键和置空外键)。 1.死锁以及并发问题。对于父表的delete、update操作都会导致子表锁定(表级锁)。这指的是发起指令到指令结束这一段过程中,会锁表。这个全表锁可能会导致死锁,以及带来的子表并发性的问题。注意这里明显的hang,只会发生在特定场合。 2.删除变慢。若索引是ON DELETE CASCADE,也就是级联外键。即使在不会导致1的情况,也会在删除过程中,每删除父表的一行就会对子表进行一次全表扫描,造成删除变慢。 3.查询变慢。父表查询子表通过外键联合查询下,没有添加外键索引会导致查询变慢。 总结深入下去,其实就是Oracle琐机制的一些特性,需要再继续研究。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |