【问题标题】:Do index type (unique and non-unique) affect table locking as result of DML?索引类型(唯一和非唯一)是否会因为 DML 影响表锁定?
【发布时间】:2016-12-20 09:00:28
【问题描述】:

如果子表中存在未索引的 FK,则对父表 PK 的任何更新都会锁定整个子表,除非子表中的 FK 被索引。

我的问题是,如果我们想防止整个表锁定,那么 FK 索引是否必须是唯一的?或者索引是唯一的还是非唯一的都没有关系?

【问题讨论】:

  • 这不应该取决于 FK 列有什么或将有什么吗?如果它将具有唯一数据,则应创建唯一索引。如果不创建常规。
  • @GurwinderSingh 我想知道索引是否唯一会影响锁定行为?
  • 它可以是唯一的、非唯一的甚至是复合索引(如果 FK 列列在第一位)。

标签: sql oracle indexing


【解决方案1】:

索引不必是唯一的。它可以是常规的或复合的。

在外键上建立索引的目的是避免在执行操作时出现全表锁定:

  1. 在父表中删除
  2. 主键列更新

并且在通过避免全表扫描进行连接时很有用。

http://www.dba-oracle.com/t_foreign_key_indexing.htm

【讨论】:

    猜你喜欢
    • 2013-05-13
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多