中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

外鍵無索引對數據庫的影響以及增加索引后的效果

發布時間:2020-08-13 23:21:41 來源:ITPUB博客 閱讀:301 作者:shadow_young 欄目:關系型數據庫

1.  測試方法

測試環境下,創建兩張表, PK1和FK1,通過外鍵PK_ID進行關聯,

檢查外鍵無索引和有索引情況下對數據庫的影響

2.  測試環境

如下所示,建立兩張表,主表為 PK1, 子表為 FK1 ,主表主鍵為 ID 列,子表主鍵也為 ID 列,外鍵約束為 PK_ID,references PK1 ID 列。

主表鍵

  外鍵無索引對數據庫的影響以及增加索引后的效果

子表鍵

  外鍵無索引對數據庫的影響以及增加索引后的效果

主表列

  外鍵無索引對數據庫的影響以及增加索引后的效果

子表列

  外鍵無索引對數據庫的影響以及增加索引后的效果

主表和子表的數據

  外鍵無索引對數據庫的影響以及增加索引后的效果 外鍵無索引對數據庫的影響以及增加索引后的效果

3.  測試結果匯總

測試大類

測試內容

測試結果

外鍵無索引

a. 子表有刪改操作。 同時 主表有刪操作,或者更新主鍵的操作。

b.  刪除主表記錄或主子表關聯查詢

a. 子表有刪改操作。 同時 主表有刪操作,或者更新主鍵的操作。 滿足以上兩個條件會出現主表操作hang狀態。

b 外鍵不建索引,則刪除主表記錄或主子表關聯查詢,都會進行子表的全表掃描。

外鍵有索引

a. 子表有刪改操作。 同時 主表有刪操作,或者更新主鍵的操作。

b.  刪除主表記錄或主子表關聯查詢

未出現主表 hang和相關全表掃描

(1) 外鍵沒有索引,會導致子表產生表鎖:

a. 子表有刪改操作。

b. 主表有刪操作,或者更新主鍵的操作。

滿足以上兩個條件會出現主表操作hang 狀態。

(2) 外鍵不建索引,則刪除主表記錄或主子表關聯查詢,都會進行子表的全表掃描。

(3) 只有外鍵創建索引, (1) 中的操作才不會出現鎖或 hang 狀態, (2) 中的操作才有可能使用索引。

4.  測試場景

4.1.  外鍵無索引情況

1. 更新子表時,主表無法刪除列或者更新主鍵列。

  外鍵無索引對數據庫的影響以及增加索引后的效果

  外鍵無索引對數據庫的影響以及增加索引后的效果

外鍵無索引對數據庫的影響以及增加索引后的效果

2. 刪除子表列時,主表無法刪除列或者更新主鍵列

  外鍵無索引對數據庫的影響以及增加索引后的效果

  外鍵無索引對數據庫的影響以及增加索引后的效果

  外鍵無索引對數據庫的影響以及增加索引后的效果

同時進行關聯查詢時,會用到全表掃描

  外鍵無索引對數據庫的影響以及增加索引后的效果

  外鍵無索引對數據庫的影響以及增加索引后的效果

刪除主表數據的話,還會對子表進行全表掃描

  外鍵無索引對數據庫的影響以及增加索引后的效果

SQL ID: 6j3nfuym9sr2q Plan Hash: 715003257

delete from pk1

where

 id=8

call     count       cpu    elapsed       disk      query    current        rows

------- ------  -------- ---------- ---------- ---------- ----------  ----------

Parse        1      0.00       0.00          0          0          0           0

Execute      1      0.00       0.00          0          1          7           1

Fetch        0      0.00       0.00          0          0          0           0

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total        2      0.00       0.00          0          1          7           1

Misses in library cache during parse: 0

Optimizer mode: ALL_ROWS

Parsing user id: 90  

Number of plan statistics captured: 1

Rows (1st) Rows (avg) Rows (max)  Row Source Operation

---------- ---------- ----------  ---------------------------------------------------

         0          0          0  DELETE  PK1 (cr=8 pr=0 pw=0 time=2968 us)

         1          1          1   INDEX UNIQUE SCAN PK_ID (cr=1 pr=0 pw=0 time=47 us cost=0 size=13 card=1)(object id 76853)

Elapsed times include waiting on following events:

  Event waited on                             Times   Max. Wait  Total Waited

  ----------------------------------------   Waited  ----------  ------------

  SQL*Net message to client                       1        0.00          0.00

  SQL*Net message from client                     1        4.08          4.08

*******************************************************************************

SQL ID: 6j3sg0cgf9vvf Plan Hash: 92442012

select /*+ all_rows */ count(1)

from

 "TEST"."FK1" where "PK_ID" = :1

call     count       cpu    elapsed       disk      query    current        rows

------- ------  -------- ---------- ---------- ---------- ----------  ----------

Parse        1      0.00       0.00          0          0          0           0

Execute      1      0.00       0.00          0          0          0           0

Fetch        1      0.00       0.00          0          7          0           1

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total        3      0.00       0.00          0          7          0           1

Misses in library cache during parse: 0

Optimizer mode: ALL_ROWS

Parsing user id: SYS   (recursive depth: 1)

Number of plan statistics captured: 1

Rows (1st) Rows (avg) Rows (max)  Row Source Operation

---------- ---------- ----------  ---------------------------------------------------

         1          1          1  SORT AGGREGATE (cr=7 pr=0 pw=0 time=604 us)

         0          0          0   TABLE ACCESS FULL FK1 (cr=7 pr=0 pw=0 time=523 us cost=3 size=13 card=1)

******************************************************************************* *

4.2.  外鍵有索引情況

子表建立索引后

  外鍵無索引對數據庫的影響以及增加索引后的效果

對子表的刪除或者更新操作后,主表更新主鍵或者刪除列不會獲取表鎖,可以正常執行。

  外鍵無索引對數據庫的影響以及增加索引后的效果

  外鍵無索引對數據庫的影響以及增加索引后的效果

外鍵無索引對數據庫的影響以及增加索引后的效果

同時關聯查詢時也會用到索引

  外鍵無索引對數據庫的影響以及增加索引后的效果

  外鍵無索引對數據庫的影響以及增加索引后的效果

對主表的刪除也不會進行全表掃描

SQL ID: 6j3nfuym9sr2q Plan Hash: 715003257

delete from pk1

where

 id=8

call     count       cpu    elapsed       disk      query    current        rows

------- ------  -------- ---------- ---------- ---------- ----------  ----------

Parse        1      0.00       0.00          0          0          0           0

Execute      1      0.00       0.00          0          1          6           1

Fetch        0      0.00       0.00          0          0          0           0

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total        2      0.00       0.00          0          1          6           1

Misses in library cache during parse: 0

Optimizer mode: ALL_ROWS

Parsing user id: 90  

Number of plan statistics captured: 1

Rows (1st) Rows (avg) Rows (max)  Row Source Operation

---------- ---------- ----------  ---------------------------------------------------

         0          0          0  DELETE  PK1 (cr=1 pr=0 pw=0 time=874 us)

         1          1          1   INDEX UNIQUE SCAN PK_ID (cr=1 pr=0 pw=0 time=47 us cost=0 size=13 card=1)(object id 76853)

Elapsed times include waiting on following events:

  Event waited on                             Times   Max. Wait  Total Waited

  ----------------------------------------   Waited  ----------  ------------

  SQL*Net message to client                       1        0.00          0.00

  SQL*Net message from client                     1        9.67          9.67

********************************************************************************

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

崇明县| 柏乡县| 罗定市| 潞城市| 孟连| 镇巴县| 青岛市| 文水县| 合水县| 德化县| 惠水县| 霍林郭勒市| 比如县| 东宁县| 阜南县| 新田县| 荣成市| 虞城县| 柳江县| 淮阳县| 凭祥市| 仙桃市| 郑州市| 无极县| 临夏县| 莱西市| 时尚| 屯留县| 开平市| 青田县| 大荔县| 鄄城县| 望谟县| 宁都县| 甘泉县| 台安县| 涪陵区| 罗城| 寿光市| 巴里| 许昌市|