Oracle外键需要建索引吗?
生活随笔
收集整理的這篇文章主要介紹了
Oracle外键需要建索引吗?
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
關(guān)于Oracle中的外鍵,首先要說明一下。
1. 除非已定義了父表主鍵或唯一鍵約束,否則oracle將不允許創(chuàng)建子表的外鍵約束。
2. 在定義外鍵約束時(shí),oracle不會(huì)自動(dòng)創(chuàng)建索引,所以必須手動(dòng)在與外鍵約束相關(guān)的列上創(chuàng)建索引。
所以我們這里要研究的是否需要在子表中創(chuàng)建索引,因?yàn)楦副碇袑?duì)應(yīng)的列是一定有索引的。
如果子表中的外鍵不創(chuàng)建索引,將導(dǎo)致兩個(gè)問題。
1. 影響性能。 如果子表外鍵沒有創(chuàng)建索引,那么當(dāng)父表查詢關(guān)聯(lián)子表時(shí),子表將進(jìn)行全表掃描。
2. 影響并發(fā)。 如果子表外鍵沒有創(chuàng)建索引,那么在子表進(jìn)行DML操作時(shí),將會(huì)鎖住整個(gè)父表。
所以,我們應(yīng)該盡量考慮在外鍵上面創(chuàng)建索引。
總結(jié)
以上是生活随笔為你收集整理的Oracle外键需要建索引吗?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云信在哪个银行能开通
- 下一篇: 读写分离,读写分离死锁解决方案,事务发布