[ Oracle SQL ] μΈλ±μ€(INDEX)
π μΈλ±μ€(INDEX)
β ν μ΄λΈμ λν λμμ μλλ₯Ό λμ¬μ£Όλ μλ£ κ΅¬μ‘°
β μΈλ±μ€λ μνλ μ 보μ μμΉλ₯Ό λΉ λ₯΄κ³ , μ ννκ³ , μ§λ₯μ μΌλ‘ μμλΌ μ μλ λ°©λ² μ 곡νλ€.
β μΈλ±μ€λ ν μ΄λΈ λ΄μ 1κ°μ 컬λΌ, νΉμ μ¬λ¬ κ°μ 컬λΌμ μ΄μ©νμ¬ μμ±λ μ μλ€.
β ν μ΄λΈμ 컬λΌμ λν μ μ½ μ‘°κ±΄μ μ€μ ν λ κ³ μ μ μ½ μ‘°κ±΄μΈ PRIMARY KEYλ UNIQUEλ‘ μ€μ νλ©΄ Oracleμ μλμΌλ‘ μ΄ μ»¬λΌμ λν΄ Unique indexλ₯Ό μ€μ νλ€.
β Unique index : λ°μ΄ν° κ°μ΄ μ€λ³΅λ¨μ΄ μμ΄ μ μΌν κ°μ κ°μ§λ 컬λΌμ μΈλ±μ€λ₯Ό μ€μ νμ λ, κ³ μ μΈλ±μ€λ μ€λ³΅λ νλͺ©μ΄ λ±λ‘λλ κ²μ κΈμ§νκΈ° λλ¬Έμ μΈλ±μ€μ λμμΈ ν μ΄λΈμμ κ³ μ μ±μ΄ 보μ₯λλ€.
π μΈλ±μ€ λ§λ€κΈ°
β μλ : ν μ΄λΈ μ μμ PRIMARY KEY λλ UNIQUE μ μ½ μ‘°κ±΄μ μ μνλ©΄ κ³ μ μΈλ±μ€κ° μλμΌλ‘ μμ±λλ€.
β μλ : μ¬μ©μκ° μ΄μ κ³ μ νμ§ μμ μΈλ±μ€λ₯Ό μμ±νμ¬ νμ λν μ‘μΈμ€ μκ°μ μ€μΌ μ μλ€.
CREATE INDEX index_name
ON table_name (column_name[,column_name]...);
β μ μΌν κ°μ κ°μ§λ 컬λΌμ μΈλ±μ€ μ€μ : UNIQUE INDEX
//μ μΌν κ°μ κ°μ§λ 컬λΌμ μΈλ±μ€ μ€μ : UNIQUE INDEX
CREATE UNIQUE INDEX dname_idx
ON dept (dname);
β μ μΌν κ°μ κ°μ§μ§ μλ 컬λΌμ μΈλ±μ€ μ€μ : NON UNIQUE INDEX
//μ μΌν κ°μ κ°μ§μ§ μλ 컬λΌμ μΈλ±μ€ μ€μ : NON UNIQUE INDEX
//emp ν
μ΄λΈμ enameμ΄μ λν μ§μ μ‘μΈμ€ μλ ν₯μ
create index emp_ename_idx
on emp(ename);
----------------------------
CREATE INDEX deptno_idx
ON emp (deptno);
μΈλ±μ€ μμ±μ΄ νμν κ²½μ° | μΈλ±μ€λ₯Ό μμ±νμ§ μμμΌ ν κ²½μ° |
μ΄μ κ΄λ²μν κ°μ΄ ν¬ν¨λ κ²½μ° | ν μ΄λΈμ΄ μμ κ²½μ° |
μ΄μ λ κ°μ΄ λ§μ΄ ν¬ν¨λ κ²½μ° | μ΄μ΄ μ§μμ 쑰건μΌλ‘ μμ£Ό μ¬μ©λμ§ μλ κ²½μ° |
WHERE μ λλ μ‘°μΈ μ‘°κ±΄μμ νλ μ΄μμ μ΄μ΄ ν¨κ» μμ£Ό μ¬μ©λλ κ²½μ° |
μΈλ±μ€νλ μ΄μ΄ ννμμ μΌλΆλ‘ μ°Έμ‘°λλ κ²½μ° |
ν° ν
μ΄λΈμμ λλΆλΆμ μ§μμ μν΄ κ²μλλ νμ΄ 2%~4% λ―Έλ§μΈ κ²½μ° |
λλΆλΆμ μ§μκ° ν μ΄λΈμ μλ νμ 2%~4% μ΄μμ κ²μν κ²½μ° |
ν μ΄λΈμ΄ μμ£Ό κ°±μ λλ κ²½μ° |
π ν¨μ κΈ°λ° μΈλ±μ€
β ν¨μ κΈ°λ° μΈλ±μ€λ ννμμ κΈ°λ°μΌλ‘ νλ μΈλ±μ€
β μΈλ±μ€ ννμμ ν μ΄λΈ μ΄, μμ, SQL ν¨μ λ° μ¬μ©μκ° μ μν ν¨μλ‘λΆν° μμ±λλ€.