频道栏目
首页 > 资讯 > Oracle > 正文

Oracle中外键不加索引可能导致哪些问题

17-11-01        来源:[db:作者]  
收藏   我要投稿

Oracle中外键不加索引可能会导致3个问题,这里的外键包括Oracle所有种类的外键(普通外键、级联外键和置空外键)。

1.死锁以及并发问题。

对于父表的delete、update操作都会导致子表锁定(表级锁)。这指的是发起指令到指令结束这一段过程中,会锁表。这个全表锁可能会导致死锁,以及带来的子表并发性的问题。注意这里明显的hang,只会发生在特定场合。
这里强调一下,对于父表的delete、update操作,发起指令到指令结束这一段过程中,会锁表。也就是说若delete from 父表 where x = 1; 那么子表在会话显示出 xxx row deleted.结果之前是锁定的,显示出之后又是释放的。这个很关键,有助于理解一些例子。

2.删除变慢。

若索引是ON DELETE CASCADE,也就是级联外键。即使在不会导致1的情况,也会在删除过程中,每删除父表的一行就会对子表进行一次全表扫描,造成删除变慢。

3.查询变慢。

父表查询子表通过外键联合查询下,没有添加外键索引会导致查询变慢。

总结

深入下去,其实就是Oracle琐机制的一些特性,需要再继续研究。

相关TAG标签
上一篇:数据库的基础类BaseDao.java连接教程
下一篇:sqlserver查询数据可编辑方法
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站