λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

TIL (Today I Learned)/Database

[Database] Index 생성

728x90

INDEX 생성

인덱슀(index)

  • μΈλ±μŠ€λŠ” ν…Œμ΄λΈ”μ—μ„œ μ›ν•˜λŠ” 데이터λ₯Ό 쉽고 λΉ λ₯΄κ²Œ μ°ΎκΈ° μœ„ν•΄μ„œ μ‚¬μš©
  • 자주 μ‚¬μš©λ˜λŠ” ν•„λ“œ κ°’μœΌλ‘œ λ§Œλ“€μ–΄μ§„ 원본 ν…Œμ΄λΈ”μ˜ 사본이라고 생각 ν•  수 μžˆλ‹€.
  • MySQL은 데이터λ₯Ό 검색할 λ•Œ 첫 번째 ν•„λ“œλΆ€ν„° μ°¨λ‘€λŒ€λ‘œ ν…Œμ΄λΈ” 전체λ₯Ό κ²€μƒ‰ν•œλ‹€.
  • ν…Œμ΄λΈ”μ΄ 크닀면 κ²€μƒ‰ν•˜λŠ” μ‹œκ°„μ΄ 증가
  • 인덱슀λ₯Ό μ‚¬μš©ν•˜λ©΄ 전체λ₯Ό 읽지 μ•Šμ•„λ„ λ˜λ―€λ‘œ, 검색과 μ§ˆμ˜μ— λŒ€ν•œ μ²˜λ¦¬κ°€ λΉ λ₯΄κ²Œ μ΄λ£¨μ–΄μ§ˆ μˆ˜λ„ μžˆλ‹€.
  • ν•˜μ§€λ§Œ λ°μ΄ν„°μ˜ μ‚½μž…, μ‚­μ œ, μˆ˜μ •μ΄ 원본 ν…Œμ΄λΈ”μ—μ„œ μ΄λ£¨μ–΄μ§ˆ 경우 μΈλ±μŠ€λ„ ν•¨κ»˜ μˆ˜μ •λ˜μ–΄μ•Ό ν•œλ‹€. λ”°λΌμ„œ μΈλ±μŠ€κ°€ μ„€μ •λœ ν…Œμ΄λΈ”μ˜ 처리 속도가 느렀질 수 μžˆλ‹€.
  • λ”°λΌμ„œ μΈλ±μŠ€λŠ” μˆ˜μ •λ³΄λ‹€λŠ” 검색이 자주 μ‚¬μš©λ˜λŠ” ν…Œμ΄λΈ”μ—μ„œ μ‚¬μš©ν•˜λŠ” 것이 μ’‹λ‹€.

인덱슀 생성

  • CREATE 문을 μ‚¬μš©ν•˜λ©΄ 인덱슀λ₯Ό 생성할 수 μžˆλ‹€.

    CREATE INDEX μΈλ±μŠ€μ΄λ¦„
    ON ν…Œμ΄λΈ”μ΄λ¦„ (ν•„λ“œμ΄λ¦„1, ν•„λ“œμ΄λ¦„2, ...)
  • topic ν…Œμ΄λΈ” 예제

    image

    CREATE INDEX TitleIdx
    ON topic(title);

    image

  • 인덱슀 정보보기

    SHOW INDEX
    FROM ν…Œμ΄λΈ”μ΄λ¦„

    image

  1. Table : ν…Œμ΄λΈ”μ˜ 이름을 ν‘œμ‹œν•¨
  2. Non_unique : μΈλ±μŠ€κ°€ μ€‘λ³΅λœ 값을 μ €μž₯ν•  수 있으면 1, μ €μž₯ν•  수 μ—†μœΌλ©΄ 0을 ν‘œμ‹œν•¨
  3. Key_name : 인덱슀의 이름을 ν‘œμ‹œν•˜λ©°, μΈλ±μŠ€κ°€ ν•΄λ‹Ή ν…Œμ΄λΈ”μ˜ κΈ°λ³Έ 킀라면 PRIMARY둜 ν‘œμ‹œν•¨
  4. Seq_in_index : μΈλ±μŠ€μ—μ„œμ˜ ν•΄λ‹Ή ν•„λ“œμ˜ μˆœμ„œλ₯Ό ν‘œμ‹œν•¨
  5. Column_name : ν•΄λ‹Ή ν•„λ“œμ˜ 이름을 ν‘œμ‹œν•¨
  6. Collation : μΈλ±μŠ€μ—μ„œ ν•΄λ‹Ή ν•„λ“œκ°€ μ •λ ¬λ˜λŠ” 방법을 ν‘œμ‹œν•¨
  7. Cardinality : μΈλ±μŠ€μ— μ €μž₯된 μœ μΌν•œ κ°’λ“€μ˜ 수λ₯Ό ν‘œμ‹œν•¨
  8. Sub_part : 인덱슀 접두어λ₯Ό ν‘œμ‹œν•¨
  9. Packed : ν‚€κ°€ μ••μΆ•λ˜λŠ”(packed) 방법을 ν‘œμ‹œν•¨
  10. Null : ν•΄λ‹Ή ν•„λ“œκ°€ NULL을 μ €μž₯ν•  수 있으면 YESλ₯Ό ν‘œμ‹œν•˜κ³ , μ €μž₯ν•  수 μ—†μœΌλ©΄ ''λ₯Ό ν‘œμ‹œν•¨
  11. Index_type : μΈλ±μŠ€μ— μ‚¬μš©λ˜λŠ” λ©”μ†Œλ“œ(method)λ₯Ό ν‘œμ‹œν•¨
  12. Comment : ν•΄λ‹Ή ν•„λ“œλ₯Ό μ„€λͺ…ν•˜λŠ” 것이 μ•„λ‹Œ μΈλ±μŠ€μ— κ΄€ν•œ 기타 정보λ₯Ό ν‘œμ‹œν•¨
  13. Index_comment : μΈλ±μŠ€μ— κ΄€ν•œ λͺ¨λ“  기타 정보λ₯Ό ν‘œμ‹œν•¨
  • UNIQUE INDEX 생성
    CREATE UNIQUE INDEX μΈλ±μŠ€μ΄λ¦„
    ON ν…Œμ΄λΈ”μ΄λ¦„(ν•„λ“œμ΄λ¦„1, ν•„λ“œμ΄λ¦„2, ...)
  • 인덱슀 μ •λ ¬
    CREATE INDEX μΈλ±μŠ€μ΄λ¦„
    ON ν…Œμ΄λΈ”μ΄λ¦„ (ν•„λ“œμ΄λ¦„ DESC)
    OR
    CREATE INDEX μΈλ±μŠ€μ΄λ¦„
    ON ν…Œμ΄λΈ”μ΄λ¦„ (ν•„λ“œμ΄λ¦„ ASC)
  • 인덱슀 μ‚­μ œ
    DROP INDEX μΈλ±μŠ€μ΄λ¦„
    ON ν…Œμ΄λΈ”μ΄λ¦„
    image